在 Linux 中,递归处理文件夹用 -r
还是 -p
选项
1. 使用 -r
:
-r
来表示递归,例如 cp
和 rm
。例如:
-r
通常用于表示递归操作,例如在复制目录或删除目录时使用。- 示例:
- 复制目录及其内容:
cp -r source_directory destination_directory
- 递归删除目录及其内容:
rm -r directory
- 递归地移动目录及其内容:
mv -r source_directory destination_directory
- 递归地修改文件或目录的权限:
chmod -r permissions target
- 递归地更改文件或目录的所有者:
chown -r new_owner:new_group target
- 递归地更改文件或目录的所属组:
chgrp -r new_group target
- 创建或提取压缩的归档文件时,可以使用 -r 表示追加文件到已存在的归档中:
tar -rvf archive.tar new_file
- 复制目录及其内容:
2. 使用 -p
:
-p
来表示递归,这主要是因为 -p
有时也被解释为 "preserve"(保留),有时表示保持文件属性(例如权限和时间戳)不变。
- 示例:
- 复制并保持文件属性:
cp -p source_file destination
- 保持被复制文件的原始属性,包括权限和时间戳:
cp -rp source_directory destination_directory
- 复制并保持文件属性:
- 保持被移动文件的原始属性:
mv -p source_file destination
- 在
mkdir
中,-p
表示创建目录及其父目录(如果不存在),这是为了方便地一次性创建多层嵌套的目录结构- 创建目录及其父目录:
mkdir -p dir1/dir2/dir3
- 创建目录及其父目录:
- 在安装文件时,保持文件的原始属性:
install -p source_file destination
- 保持原始文件的权限和时间戳,生成压缩文件:
gzip -rp file.txt
总结
故,如果是递归地处理目录,一般使用 -r
。如果要保持文件属性或者在创建目录时自动创建父目录,则可以考虑使用 -p
。