I am using find against a number of directories that have in them the same filenames but different contents. Then, I am copying them to one directory with numerical filenames.
The problem I faced was that the find command reads the folders in different order than the ls command. Making it difficult to correlate the new files to their original directories.
My solution was to run the same find command on the original directories to get them in the same order and number them accordingly.
#!/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
This almost solved the problem, but the find command for some reason lists the current working directory as the first output which offsets the numbering by 1.
$ find . -maxdepth 1 -type d | sed 's#./##'
.
dir2
dir1
dir3
although, the first find commands I ran did not have the same problem:
find . -wholename "*__substg1.0_007D001E*" -wholename "*attach_version*" -type d > header_files.txt