2016-08-19 81 views
-1

我想从2016开始的目录中读取文件名。输出应该创建到另一个文件。如何在Unix下读取子目录的文件名?

例如,我有目录/ 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 
+0

最初我写了下面的脚本。 #!/斌/庆典 CURRENT_DATE ='日期+“%d%M%Y'' FILE_PATH =/bishare/DLSFTP/2016-06 CD/appinfprd/biIA83 /客户/脚本/ IRP/ CD CD $ File_Path for i in $(find。-maxdepth 1 -type d);做 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_$CURRENT_DATE.txt done – Midhun

+0

您的脚本在哪里? –

回答

0

可以使用用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 ' \; 
+0

嘿,我试过了,它为所有数据创建单个文件。我想根据月份分割数据。在这种情况下,我需要3个文件。有没有什么办法根据月份分开数据。 – Midhun

+0

@Midhun,我更新了答案。你可以试试吗? –

+0

你好muzi,它的工作。我可以在单个文件中获得所有细节。谢谢。 – Midhun

0

尝试这种 find需要一个起点,和。(点)被选择的当前目录。例如。如果你在/ home/myuser中,找到/ home/myuser并找到。有相同的结果

find . -name "2016*" 
相关问题