我正在使用find
多个目录,这些目录具有相同的文件名但内容不同。然后,我将它们复制到一个具有数字文件名的目录。
我面临的问题是该find
命令读取文件夹的顺序与命令不同ls
。使得将新文件与其原始目录关联起来变得困难。
find
我的解决方案是在原始目录上运行相同的命令,以使它们按相同的顺序排列并相应地编号。
#!/bin/sh
find . -maxdepth 1 -type d | sed 's#./##' > rename.list
j=1
while read -r line
do
mv ./"$line" ./"$j"_"$line"
j=$(( $j + 1))
done < rename.list
这几乎解决了问题,但find
由于某种原因,该命令将当前工作目录列为第一个输出,该输出将编号偏移 1。
$ find . -maxdepth 1 -type d | sed 's#./##'
.
dir2
dir1
dir3
不过,我运行的第一个find
命令没有遇到同样的问题:
find . -wholename "*__substg1.0_007D001E*" -wholename "*attach_version*" -type d > header_files.txt
答案1
将选项设置-mindepth
为1
ie-mindepth 1
以从 的输出中排除当前目录 ( .
) find
:
find . -maxdepth 1 -mindepth 1 -type d