如何在Unix中读取子目录文件名?

时间:2016-08-19 06:45:33

标签: shell unix

我想从2016年开始的目录中读取文件名。应该将输出创建到另一个文件。

例如,我有目录/ bishare / DLSFTP /,我有2016-06,2016-06和2016-07。

所有目录都有子目录。

我需要3个输出文件,其目录的详细信息将从2016年开始。

修改

最初我写了以下脚本:

 #!/bin/bash CURRENT_DATE=date +'%d%m%Y' File_Path=/bishare/DLSFTP/2016-06 cd /appinfprd/biIA83/Client/Scripts/IRP/ cd cd $File_Path for i in $(find . -maxdepth 1 -type d) ; do echo -n $i": " ; 
File_Data=find $i type f |ls -R printf '%s\n' "$D" "|" "$File_Data" /n>> /appinfprd/biIA83/Client/Scripts/IRP/Bishare_File_Data_$CURR‌​ENT_DATE.txt done

2 个答案:

答案 0 :(得分:0)

你可以使用find命令和exec param和ls命令,如下所示;

find . -name "2016*" -type d -exec bash -c 'ls "{}"> "{}".txt ' \;

ls输出写为<directoryName>.txt

要查找以2016开头的所有目录,如下所示,键入-d只能找到目录;

find . -name "2016*" -type d

为每个目录执行ls并将输出写入folderName.txt文件

-exec bash -c 'ls "{}"> "{}".txt ' \;

答案 1 :(得分:0)

试试这个 find需要一个起点,而。(点)正在选择当前目录。例如。如果您在/ home / myuser中,请找到/ home / myuser并查找。有相同的结果

  find . -name "2016*"