我想从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_$CURRENT_DATE.txt done
答案 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*"