Зависит от использования и ОС действительно.
На моем основном рабочем столе мне разделяли пространство между / и другой раздел, который я сохраняю своими документами/музыкой и т.д. С тех пор / домой будет иметь пользовательскую конфигурацию и наполнит там, я не сохранил бы ее в целости между установками, просто символьная ссылка мои папки документа/музыки в мой homedir.
попробуйте это:
for dir in $( gfind . -type d -print ); do files=$( find $dir -maxdepth 1 -type f | wc -l ); echo "$dir : $files"; done
или, в сценарии, где у Вас может быть немного больше гибкости:
#!/usr/bin/ksh
# pass in the directory to search on the command line, use $PWD if not arg received
rdir=${1:-$(pwd)}
# if $rdir is a file, get it's directory
if [ -f $rdir ]; then
rdir=$(dirname $rdir)
fi
# first, find our tree of directories
for dir in $( gfind $rdir -type d -print ); do
# get a count of directories within $dir.
sdirs=$( find $dir -maxdepth 1 -type d | wc -l );
# only proceed if sdirs is less than 2 ( 1 = self ).
if (( $sdirs < 2 )); then
# get a count of all the files in $dir, but not in subdirs of $dir)
files=$( find $dir -maxdepth 1 -type f | wc -l );
echo "$dir : $files";
fi
done
Я использую ksh для сценариев оболочки, но он работает точно также с #!/usr/bin/zsh
, или /usr/bin/bash
.
быстрый 'n' грязный
find . -type d | \
while IFS= read -r d; do
f=$(ls -F "$d");
echo "$f" | egrep -q "/$" || \
echo $d : $(echo -n "$f"|wc -l) files;
done
find . -type d
с find ${1:-$(pwd)} -type d
).
– Tim Kennedy
19.10.2011, 20:29
gfind
? – Amelio Vazquez-Reina 18.10.2011, 01:21gfind
,gmake
,gfind
, и т.д. Для использования на Linux или другом, который значение по умолчанию к версиям GNU инструментов, просто изменениеgfind
кому:find
. – Tim Kennedy 18.10.2011, 06:18