将图像的文件名移动到文本文件

将图像的文件名移动到文本文件

我的文件夹中有图像,其中每个图像的名称为img1.jpg,img2.jpg等,图像的位置的形式为 /home/master/test/data/obj/img1.jpg, /home/master/test/data/obj/img2.jpg等。我试图提取图像的路径并将其放入名为的文本文件中sample.txt其中每一行对应于图像位置:

/home/master/test/data/obj/img1.jpg
/home/master/test/data/obj/img2.jpg

在linux下有没有简单的方法可以做到这一点?

答案1

一种可能性是find

find /home/master/test/data/obj/ -type f -name "*.jpg" > sample.txt

*.jpg它返回中包含的文件的绝对路径名/home/master/test/data/obj/

find命令及其选项-type位于-namePOSIX 规范中。

答案2

您可以使用此命令:

cd your_dir
find "$(pwd)" -type f -name "img[0-9]*\.jpg" -exec echo > sample.txt {} \;

输出:

答案3

如果您想让它们具有完整路径,您可以使用

ls -1 /home/master/test/data/obj/*.jpg >sample.txt

如果您已经进入该目录,则可以使用:

ls -1 $(pwd)/*.jpg >sample.txt

相关内容