在一个目录中,我有数百个子目录。每个子目录都有数百张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
Run Code Online (Sandbox Code Playgroud)
从每个子目录中,我只想将第一个文件(例如,扩展名为 -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
Run Code Online (Sandbox Code Playgroud)
我该如何修复此代码?
为什么find
当所有文件都在相同深度的目录中时?
cd "$DIR"
cp */*-001.jpg /destination/path
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2744 次 |
最近记录: |