как иметь, находят на каталоге с изменяющимся шаблоном?

Использовать du -h и все каталоги и их подкаталоги агрегированы. (-h делает это человекочитаемым как в полезных единицах как МБ, ГБ или КБ),

2
08.10.2011, 03:47
2 ответа

Можно установить переменную для содержания различной части. Как так:

domain='some-domain-1'
cd /domains/$domain/applications/j2ee-apps
domain='some-domain-2'
cd /domains/$domain/applications/j2ee-apps

Так как команда CD является тем же, можно вспомнить это на оболочке с клавишами со стрелками.

В зависимости от того, как часто Вы делаете это, Вы могли бы хотеть определить функцию в Вашем .bashrc.

cdj2(){
  cd /domains/"$1"/applications/j2ee-apps
}

Затем Вы можете cdj2 some-domain-1.

Shell globbing (иначе расширение пути) может заботиться о другой части (см. ответ Stéphane Gimenez). find команда была бы полезна, если бы структуры каталогов не были точно тем же, но Вы все еще хотите видеть, что все файлы соответствуют определенному имени.

find /domains -name 'j2ee-apps' -exec ls {} \;

3
27.01.2020, 21:51
  • 1
    Что является частью на конце: '{} \'? –  javamonkey79 08.10.2011, 04:27
  • 2
    я люблю функциональное предложение определения, Спасибо! –  javamonkey79 08.10.2011, 04:36
  • 3
    Забавный бит в конце s путь -exec аргументы опции должны быть форматированы. {} заменяется именем файла (s в зависимости от другого args и результатов). Аргумент должен быть завершен с a ;, однако, оболочка интерпретирует ; и не передает его команде, если Вы не выходите из него с '\'. –  Shawn J. Goff 08.10.2011, 04:39
  • 4
    я, может казаться, не заставляю функции работать хотя :( В некоторых учебных руководствах говорится для использования 'имени функции () {...}' Но это отличается от Вашего синтаксиса. Ни один, кажется, не работает. Действительно ли там что-то еще является особенным, который нужно сделать? –  javamonkey79 08.10.2011, 04:46
  • 5
    Когда я поместил его в свой .bash_profile с помощью 'имени функции () {...}' Синтаксис это работает. –  javamonkey79 08.10.2011, 04:53

Для ls, можно использовать следующее для получения полного списка:

ls /domains/*/applications/j2ee-apps

Для переключения от одного ответвления до другого, я боюсь, что нет никакого простого способа сделать то, что Вы хотите.

5
27.01.2020, 21:51
  • 1
    Можно ли сделать что-то вроде этого с находкой? –  javamonkey79 08.10.2011, 04:26
  • 2
    @javamonkey79: Да можно использовать шарики с find, например. find $HOME/bin/*/c* -name '*a*' ... find также позволяет regex шаблоны: посмотрите -regex в man find –  Peter.O 08.10.2011, 15:31

Теги

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