我正在尝试在所有子目录中创建一个名为1
的文件。
例如,主目录为abc
,子目录为abc/xyz
,abc/ghi/123
它必须包含完整的路径和文件名。
答案 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
abc
的目录中所有递归的目录readlink -f
显示路径“ $ dir” / 1 > "$dir"/1
写入文件"$dir"/1
,在写入之前将其截断,创建是否不存在-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' -- {} \;