在所有子目录中创建文件

时间:2018-10-21 16:45:22

标签: linux command-line

我正在尝试在所有子目录中创建一个名为1的文件。 例如,主目录为abc,子目录为abc/xyzabc/ghi/123

它必须包含完整的路径和文件名。

2 个答案:

答案 0 :(得分:0)

您可以按照

的方式进行操作
for d in $(find abc -type d); do
    touch "$d"/1
done

答案 1 :(得分:0)

使用:

find abc -type d -print0 | while IFS= read -r -d '' dir; do
      readlink -f "$dir"/1 > "$dir"/1
done
  1. 它找到名为abc的目录中所有递归的目录
  2. 对于找到的每个目录,它将其读取到“ dir”变量中
  3. readlink -f显示路径“ $ dir” / 1
  4. 的完整路径
  5. > "$dir"/1写入文件"$dir"/1,在写入之前将其截断,创建是否不存在
  6. -print0-d ''用于处理目录名称中的空格和换行符。

以及使用xargs的版本:

find abc -type d -print0 | xargs -0 -n1 -- sh -c 'readlink -f "$1"/1 > "$1"/1` --

但是我们也可以使用find的-exec,它应该是最快的:

find abc -type d -exec sh -c 'readlink -f "$1"/1 > "$1"/1' -- {} \;
相关问题