Linux Command: mkdir -p; find; gitclone; hardconnection and softconnection

本文详细介绍了Linux系统中常用的mkdir、find命令及git clone选项,并对比了软链接与硬链接的区别。主要内容包括mkdir命令的参数说明,find命令的使用格式与各种选项,git clone的详细配置项,以及硬链接和软链接的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1/ mkdir的参数:
-m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask

-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; 

-v, --verbose  每次创建新目录都显示信息

 --help   显示此帮助信息并退出

 --version  输出版本信息并退出


2/ find命令的格式:find PATH OPTION [-exec COMMAND { } \;] (find [起始目录] 寻找条件 操作)


在option中,具体有参数:


-name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。


-lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、?、[ ]。


-gid n 查找属于ID号为 n 的用户组的所有文件。


-uid n 查找属于ID号为 n 的用户的所有文件。


-group ’字串’ 查找属于用户组名为所给字串的所有的文件。


-user ’字串’ 查找属于用户名为所给字串的所有的文件。


-empty 查找大小为 0的目录或文件。


-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。


-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。


-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表512字节的块。


-type x 查找类型为 x 的文件,x 为下列字符之一:


b 块设备文件


c 字符设备文件


d 目录文件


p 命名管道(FIFO)


f 普通文件


l 符号链接文件(symbolic links)


s socket文件


-xtype x 与 -type 基本相同,但只查找符号链接文件。


以时间为条件查找


-amin n 查找n分钟以前被访问过的所有文件。


-atime n 查找n天以前被访问过的所有文件。


-cmin n 查找n分钟以前文件状态被修改过的所有文件。


-ctime n 查找n天以前文件状态被修改过的所有文件。


-mmin n 查找n分钟以前文件内容被修改过的所有文件。


-mtime n 查找n天以前文件内容被修改过的所有文件。


-print:将搜索结果输出到标准输出。


我们再看一下exec选项:


-exec:对搜索的结构指令指定的shell命令。注意格式要正确:"-exec 命令 {} \;"


在}和\之间一定要有空格才行;


{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。


例子:对上述例子搜索出来的文件进行删除操作,命令如下:


find / -name "test-find.c" -type f -mtime +3 -user greek -prune /root/bin -exec rm {} \;


3/ Some details about the options of git clone: 


http://blog.youkuaiyun.com/techbirds_bao/article/details/9179853


4/ Difference between softlink and hardlink


Every file in linux system has its own iNode. Then hardlink is a pointer to the iNode. Quoted from [2]:

硬链接实际上是一个指针,指向源文件的inode,系统并不为它重新分配inode。硬连接不会建产新的inode,硬连接不管有多少个,都指向的是同一个inode节点,只是新建一个hard link会把结点连接数增加,只要结点的连接数不是0,文件就一直存在,不管你删除的是源文件还是连接的文件。只要有一个存在,文件就存在(其实就是引用计数的概念)。当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。


Softlink is like expression in Windows. 软链接最直观的解释:相当于Windows系统的快捷方式,是一个独立文件(拥有独立的inode,与源文件inode无关),该文件的内容是源文件的路径指针,通过该链接可以访问到源文件。所以删除软链接文件对源文件无影响,但是删除源文件,软链接文件就会找不到要指向的文件(可以类比Windows上快捷方式,你点击快捷方式可以访问某个文件,但是删除快捷方式,对源文件无任何影响)。


 

Reference:

1/ http://www.chinaz.com/server/2009/0807/85796.shtml

2/ http://blog.youkuaiyun.com/yasaken/article/details/7292186

3/ 


### 解决方案 当遇到 `mkdir: command not found` 的错误时,通常是因为系统的环境变量配置不正确或者某些必要的工具包缺失。以下是可能的原因以及解决方案: #### 1. **检查 PATH 环境变量** 如果系统无法识别基本命令(如 `mkdir`),可能是由于 `$PATH` 变量被意外修改或损坏。可以通过以下方式验证并修复: ```bash echo $PATH ``` 正常情况下,输出应包含 `/bin` 和 `/usr/bin` 路径。如果没有这些路径,则需要手动将其添加到 `.bashrc` 或 `.zshrc` 文件中[^1]。 编辑配置文件: ```bash nano ~/.bashrc ``` 在文件末尾追加以下内容: ```bash export PATH="/bin:/usr/bin:$PATH" ``` 保存后重新加载配置文件: ```bash source ~/.bashrc ``` #### 2. **确认核心实用程序是否存在** 有时,即使 `$PATH` 正确设置,也可能因为缺少 GNU Core Utilities 导致基础命令不可用。可以尝试安装或更新 coreutils 工具集来解决问题: ```bash brew install coreutils ``` 对于 macOS 用户,Homebrew 是最常用的软件管理器。通过此方法可确保所有标准 Unix 命令可用[^1]。 #### 3. **处理 `-p` 参数的具体情况** `mkdir -p` 中的 `-p` 参数允许创建嵌套目录结构而无需逐层建立父级目录。如果单独执行 `mkdir` 成功但加上 `-p` 后失败,说明当前使用的版本可能存在兼容性问题。此时建议升级 shell 版本或将具体操作替换为更通用的形式实现相同功能[^1]: ```bash mkdir -p /path/to/directory || { mkdir /path && mkdir /path/to && mkdir /path/to/directory; } ``` 以上脚本能有效规避因参数支持不足引发的问题。 --- ### 示例代码片段 下面提供一段完整的测试与修正流程作为参考: ```bash #!/bin/bash # Step 0: Check if 'mkdir' is available. if ! command -v mkdir &> /dev/null; then echo "'mkdir' could not be found." # Attempt to fix by resetting PATH variable. export PATH="/bin:/usr/bin:$PATH" fi # Step 1: Test creating a directory with '-p'. test_dir="./test_directory/subdir" if mkdir -p "$test_dir"; then echo "Directory created successfully!" else echo "Failed to create directory using 'mkdir -p'. Trying alternative method..." IFS='/' read -ra path_parts <<< "$test_dir" current_path="" for part in "${path_parts[@]}"; do current_path="$current_path/$part" if [[ ! -d "$current_path" ]]; then mkdir "$current_path" || exit 1 fi done echo "Fallback succeeded! Directory structure built manually." fi ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值