** 1。我想写LINUX bash文件,我想重命名子目录/ FOLDERS 它们中的文件数量(如果它们存在,则存放在子文件夹中)示例:我有这样的结构(我有~300个FOLDERS并随机计算子文件夹,我们用文件)
MUSIC
-CD1
--ELTON
--MADONA
-CD34
--SUMER
-CDBESTOF2013
--WINTER
--2009
--2010
-CDGREATTESTHITS
--HITS1
--HITS30
... ...
CD1 had 35 *.mp3 files in ALL SUBFOLDERS
CD34 had 10 *.mp3 files in ALL SUBFOLDERS
CDBESTOF2013 had 300 *.mp3 files in ALL SUBFOLDERS
CDGREATTESTHITS had 99 *.mp3 files in ALL SUBFOLDERS
I want to run Linux bash file to rename/add sufix to subdirs by
count of files in them RESULT:
MUSIC
-CD1_35
-CD34_10
-CDBESTOF2013_300
-CDGREATTESTHITS_99
... ... 谢谢你... **
答案 0 :(得分:0)
perl -l -e 'for $i (@ARGV) { $a=()=(<$i/*>); rename $i, "${i}_${a}"}' dir1 dir2 dir3 dir4 dir4 dirpattern*
答案 1 :(得分:0)
你走了。
for dirs in music/*; do
count=$(find "$dirs" -type f | wc -l)
mv "$dirs" "${dirs}_${count}"
done
for loop
将列出music/
中的所有子目录,并将每个目录名称分配给$dirs
。
count
将获取子目录中的文件数。
答案 2 :(得分:0)
MYDIR=$PWD
input_dirlist=`ls -l $MYDIR | egrep '^d' | awk '{print $9}'`
for f in $input_dirlist
do
count=`ls -lR $f| grep ^- | wc -l`
mv $f $f"_"$count
done
答案 3 :(得分:0)
尝试这样的事情我没有时间去测试它
for dir1 in $( find ./ -type d );do
cnt=$(ls $dir1 | wc -l)
dir2=$(dirname $dir1)
mv $dir1 $dir2_${cnt}
done