我有以下布局:
```
d1
├── f1
├── f2
└── f3
d2
├── f4
└── f5
d3
├── f6
├── f7
├── f8
└── d4
└── f9
```
我想要的是将根目录重命名为包含其中所有文件(递归计算)的数量。
格式不是特别重要,只要不太长就行。我希望能每小时运行一次这个脚本以更新目录名称,所以第一次运行后,它应该如下所示:
```
3-d1
├── f1
├── f2
└── f3
2-d2
├── f4
└── f5
4-d3
├── f6
├── f7
├── f8
└── d4
└── f9
```
然后第二次运行时,可能会添加或删除几个文件,现在它看起来像这样:
```
1-d1
└── f1
4-d2
├── f2
├── f3
├── f4
└── f5
10-d3
├── f6
├── f7
├── f8
└── d4
├── f9
├── f10
├── f11
├── f12
├── f13
├── f14
└── f15
```
我已经有以下 bash 脚本,但我无法弄清如何对文件名进行正则表达式替换:
#!/bin/bash
TARGETPATH=/home/pritchea/test
for CURDIR in `ls -l $TARGETPATH`
do
if [ -d $TARGETPATH/$CURDIR ]; then
echo "$CURDIR is a directory"
FILECOUNT=`find $TARGETPATH/$CURDIR -type f | wc -l`
echo " and there are $FILECOUNT file(s)";
fi
done
ls -l
还是ls -1
?通常来说,可靠地解析ls
命令的输出是一项危险(或至少是困难)的任务;请谨慎处理。 - Jonathan Leffler