在linux中将子目录中的文件名写入csv文件

在linux中将子目录中的文件名写入csv文件

以前我问过一个非常类似的问题,但它只是针对一个子目录在linux命令行中将子目录中的文件写入csv文件并将其保存到父目录。我有一个名为“dir”的目录,其中有 5 个子目录,sub1、sub2、..sub5。每个子目录下都有很多文件。我想将所有子目录中的文件列表写入 CSV 文件,并使用 Linux 上的命令行将其保存到“dir”目录中。我的代码就是这样做的,除了我只想要文件名(name1,name2等),但它用路径(./sub1/name1,./sub1/name2等)写入完整的文件名。我在 dir 文件夹中使用的命令行是;

dir$ find . -type f  > names.csv

答案1

既然你已经将你的问题标记为“Linux”,我假设你有 GNU find- 在这种情况下你可以使用

find . -type f -printf '%f\n' > names.csv 

man find

          %f     File's  name  with  any leading directories removed (only
                 the last element).

答案2

dir$ find . -type f -execdir basename {} \; > names.csv

解释

  • -execdir对每个结果执行以下命令。
  • basename {} \;删除final之前的部分/{}找到的每个目录的替代品。请参阅man find获取更多信息。

相关内容