ディレクトリ内には数百のサブディレクトリがあります。各サブディレクトリには何百ものjpg画像があります。フォルダ名が「ABC_DEF」の場合、そのフォルダ内のファイル名は「ABC_DEF-001.jpg」、「ABC_DEF-002.jpg」などになります。
たとえば、
---Main Directory
------Sub-Directory ABC_DEF
----------ABC_DEF-001.jpg
----------ABC_DEF-002.jpg
------Sub-Directory ABC_GHI
----------ABC_GHI-001.jpg
----------ABC_GHI-002.jpg
各サブディレクトリの最初のファイル(拡張子が-001.jpgのファイルなど)のみをDESTDIRというパブリックターゲットフォルダにコピーしたいと思います。
与えられたコードを変更しましたここ私のユースケースに合わせて。ただし、常にファイル名で最初のディレクトリを印刷するため、ファイルを目的の宛先にコピーすることはできません。コードは次のとおりです。
DIR=/var/www/html/beeinfo.org/resources/videos/
find "$DIR" -type d |
while read d;
do
files=$(ls -t "$d" | sed -n '1h; $ { s/\n/,/g; p }')
printf '%s,%s\n' "$files";
done
このコードをどのように修正できますか?
ベストアンサー1
find
すべてのファイルが同じ深さのディレクトリにあるのはなぜですか?
cd -- "$DIR" &&
cp -- */*-001.jpg /destination/path