ubuntu 18.04 рабочее пространство для расширения док-станции

Используйте команду locate, которая намного быстрее, чем команда find.

Выполнение тестовых данных

$ sudo updatedb # necessary if files in focus were added `cron` daily.
$ printf "Number Files: " && locate -0r "$PWD.*\.c$" | xargs -0 -I{} sh -c 'test ! -L "$1" && echo "regular file"' _  {} | wc -l &&  printf "Number Dirs.: " && locate -r "$PWD.*\.c$" | sed 's%/[^/]*$%/%' | uniq -cu | wc -l
Number Files: 29
Number Dirs.: 7

Спасибо Муру за его ответ, чтобы помочь мне путем удаления символических ссылок из количества файлов в Unix & amp; Ответ на Linux.

Спасибо Тердону за его ответ $PWD (не направленный на меня) в Unix & amp; Ответ на Linux .

Оригинальный ответ ниже, на который ссылаются комментарии

Короткая форма:

$ cd /
$ sudo updatedb
$ printf "Number Files: " && locate -cr "$PWD.*\.c$"
Number Files: 3523
$ printf "Number Dirs.: " && locate -r "$PWD.*\.c$" | sed 's%/[^/]*$%/%' | uniq -c | wc -l 
Number Dirs.: 648
sudo updatedb Обновить базу данных, используемую командой locate, если сегодня были созданы файлы .c или если вы удалили файлы .c сегодня. locate -cr "$PWD.*\.c$" найдите все .c файлы в текущем каталоге и его дочерние элементы ($PWD). Вместо того, чтобы печатать имена файлов и распечатывать счетчик с аргументом -c. Параметр r задает регулярное выражение вместо соответствия по умолчанию *pattern*, которое может дать слишком много результатов. [F20]. Найдите все *.c файлы в текущем каталоге и ниже. Удалите имя файла с sed, оставив только имя каталога. Подсчитайте количество файлов в каждом каталоге с помощью uniq -c. Подсчитайте количество каталогов с помощью wc -l.

Начать с текущего каталога с помощью одного слоя

$ cd /usr/src
$ printf "Number Files: " && locate -cr "$PWD.*\.c$" &&  printf "Number Dirs.: " && locate -r "$PWD.*\.c$" | sed 's%/[^/]*$%/%' | uniq -c | wc -l
Number Files: 3430
Number Dirs.: 624

Обратите внимание, что количество файлов и количество каталогов изменились. Я полагаю, что все пользователи имеют каталог /usr/src и могут работать над командами с разными значениями в зависимости от количества установленных ядер.

Длинная форма:

Длинная форма включает время, чтобы вы может видеть, насколько быстрее locate закончилось find. Даже если вам нужно запустить sudo updatedb, он во много раз быстрее, чем один find /.

───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~/Downloads$ sudo time updatedb
0.58user 1.32system 0:03.94elapsed 48%CPU (0avgtext+0avgdata 7568maxresident)k
48inputs+131920outputs (1major+3562minor)pagefaults 0swaps
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~/Downloads$ time (printf "Number Files: " && locate -cr $PWD".*\.c$")
Number Files: 3523

real    0m0.775s
user    0m0.766s
sys     0m0.012s
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~/Downloads$ time (printf "Number Dirs.: " && locate -r $PWD".*\.c$" | sed 's%/[^/]*$%/%' | uniq -c | wc -l) 
Number Dirs.: 648

real    0m0.778s
user    0m0.788s
sys     0m0.027s
───────────────────────────────────────────────────────────────────────────────────────────

Примечание. Это все файлы на ВСЕ приводах и разделах. т.е. мы можем также искать команды Windows:

$ time (printf "Number Files: " && locate *.exe -c)
Number Files: 6541

real    0m0.946s
user    0m0.761s
sys     0m0.060s
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~/Downloads$ time (printf "Number Dirs.: " && locate *.exe | sed 's%/[^/]*$%/%' | uniq -c | wc -l) 
Number Dirs.: 3394

real    0m0.942s
user    0m0.803s
sys     0m0.092s

У меня есть три раздела Windows NT NTFS, автоматически смонтированные в /etc/fstab.

Интересный подсчет:

$ time (printf "Number Files: " && locate / -c &&  printf "Number Dirs.: " && locate / | sed 's%/[^/]*$%/%' | uniq -c | wc -l)
Number Files: 1637135
Number Dirs.: 286705

real    0m15.460s
user    0m13.471s
sys     0m2.786s

Требуется 15 секунд, чтобы посчитать 1637135 файлов в 286 705 каталогах. YMMV.

Для детальной разбивки на обработку регулярных выражений команды locate (кажется, не требуется в этом Q & amp; A, но используется на всякий случай), пожалуйста, прочтите следующее: Используйте " locate " в каком-то конкретном каталоге?

Дополнительная информация из последних статей:

sudo updatedb Обновить базу данных, используемую командой locate, если файлы .c были созданы сегодня или если вы HowtoForge - Linux Найдите команду для начинающих (8 примеров) locate -cr "$PWD.*\.c$" найдите все .c файлы в текущем каталоге и его дочерние элементы ($PWD). Вместо того, чтобы печатать имена файлов и распечатывать счетчик с аргументом -c. Параметр r задает регулярное выражение вместо соответствия по умолчанию *pattern*, которое может дать слишком много результатов.

0
задан 6 May 2018 в 09:30

4 ответа

вы должны попробовать

apt install gnome-shell-extension-workspaces-to-dock

или установить grom github

wget https://github.com/passingthru67/workspaces-to-dock/archive/master.zip -O /tmp/master.zip
unzip /tmp/master.zip -d /tmp/
#create extension folder if needed
mkdir '~/.local/share/gnome-shell/extensions/'
mv '/tmp/workspaces-to-dock-master/workspaces-to-dock@passingthru67.gmail.com' '~/.local/share/gnome-shell/extensions/workspaces-to-dock@passingthru67.gmail.com'
rm /tmp/master.zip
rm -rf /tmp/workspaces-to-dock-master/

, затем перезапустить gnome-shell (Alt + F2, r, return)

0
ответ дан 22 May 2018 в 10:57
  • 1
    thank @ cmak.fr, установленный из github, используя ваш способ загрузки и извлечения на расширение foledr – Tango 13 May 2018 в 07:27

вы должны попробовать

apt install gnome-shell-extension-workspaces-to-dock

или установить из github

wget https://github.com/passingthru67/workspaces-to-dock/archive/master.zip -O /tmp/master.zip unzip /tmp/master.zip -d /tmp/ #create extension folder if needed mkdir '~/.local/share/gnome-shell/extensions/' mv '/tmp/workspaces-to-dock-master/workspaces-to-dock@passingthru67.gmail.com' '~/.local/share/gnome-shell/extensions/workspaces-to-dock@passingthru67.gmail.com' rm /tmp/master.zip rm -rf /tmp/workspaces-to-dock-master/

, затем перезапустить gnome-shell (Alt + F2, r, return)

0
ответ дан 17 July 2018 в 15:06

вы должны попробовать

apt install gnome-shell-extension-workspaces-to-dock

или установить grom github

wget https://github.com/passingthru67/workspaces-to-dock/archive/master.zip -O /tmp/master.zip unzip /tmp/master.zip -d /tmp/ #create extension folder if needed mkdir '~/.local/share/gnome-shell/extensions/' mv '/tmp/workspaces-to-dock-master/workspaces-to-dock@passingthru67.gmail.com' '~/.local/share/gnome-shell/extensions/workspaces-to-dock@passingthru67.gmail.com' rm /tmp/master.zip rm -rf /tmp/workspaces-to-dock-master/

, затем перезапустить gnome-shell (Alt + F2, r, return)

0
ответ дан 20 July 2018 в 15:31

вы должны попробовать

apt install gnome-shell-extension-workspaces-to-dock

или установить grom github

wget https://github.com/passingthru67/workspaces-to-dock/archive/master.zip -O /tmp/master.zip unzip /tmp/master.zip -d /tmp/ #create extension folder if needed mkdir '~/.local/share/gnome-shell/extensions/' mv '/tmp/workspaces-to-dock-master/workspaces-to-dock@passingthru67.gmail.com' '~/.local/share/gnome-shell/extensions/workspaces-to-dock@passingthru67.gmail.com' rm /tmp/master.zip rm -rf /tmp/workspaces-to-dock-master/

, затем перезапустить gnome-shell (Alt + F2, r, return)

0
ответ дан 23 July 2018 в 16:03

Другие вопросы по тегам:

Похожие вопросы: