muhas 13.04.2009 10:39

Tips & tricksУдаление файлов в консоли

Навеяно постом о Быстром способе удалять из консоли несколько директорий за 1 раз..



Имхо, то что там описано (а именно разворачивание {foo,bar}) должен знать каждый кто хочет использовать консоль более эффективно.



А теперь ближе к делу.

У меня в zshrc есть строка вызывающая dialog для выбора удаляемых каталогов и файлов в текущей директории. Так же сие дело повешено на хоткей в стиле емакс (^X^O)



1
2
3
4
5
6
7
function dialogrun; { rm -rf $(dialog --separate-output --checklist file 100 100 100 \

$(for l in $(ls -A); do echo "$l" "$(test -d $l && echo "dir" || echo "file")" 0; done) --stdout); clear }

zle -N dialogrun

bindkey -M emacs "^X^O" dialogrun





Может кому и пригодится. Так же можно изменить функцию dialogrun не только для удаления, а для передачи имен файлов в другое место (тут уже от фантазии и потребностей зависит).



PS. Только будьте пожалуйста осторожны изменяя строку используя rm -rf, ибо штука опасная, смените лучше на ls от греха подальше


Тэги: bash dialog zsh
+ 6 -
Похожие Поделиться

muhas 13.04.2009 10:43 #
Ах да, в bash и zsh функции создаются как function dialogrun() {blabla}
В посте для конфига zsh сделано
muhas 13.04.2009 10:44 #
тьфу, слово function не надо... что-то меня клинит c утра
Username 13.04.2009 11:13 #
а зачем это? я не вкурил:)
что именно эта штуковина делает?
muhas 13.04.2009 11:22 #
вызывающая dialog для выбора удаляемых каталогов и файлов
Username 13.04.2009 13:20 #
она типа спрашивает перед удалением? а чем rm -i мешает тогда?
че-то я не врубаюсь
muhas 13.04.2009 13:48 #
dialog эта что-то типо zenity - это как бы гуй для скриптов, т.е. просто выводит форму выбора файлов :)
ты попробуй введи в консоли rm -rf $(dialog --separate-output --checklist file 100 100 100 \
$(for l in $(ls -A); do echo "$l" "$(test -d $l && echo "dir" || echo "file")" 0; done) --stdout); clear и посмотри
Username 13.04.2009 13:56 #
аа.. интересная штука
a1fred 13.04.2009 12:54 #
Автодополнение по табу уже не модно чтоли использовать?:/
muhas 13.04.2009 13:51 #
когда файла много надо выбрать то вспотеешь автодополнять :) а так стрелками и пробелом отметить, я так обычно скрины в ~/ херю, ибо названия у них разные и {foo,bar} или *png и прочие не подходят и выбирать из списка проще чем вспоминать первые буквы или просто па табу и выбирать имя стрелками (как в zsh).
Вопрос удобства, к тому же на вкус и цвет все фломастеры разные :P
xameleon 13.04.2009 18:42 #
rm -rf /
lex4051 28.08.2011 22:34 #
как и ожидалось у скрипта проблема если в директории файлы с пробелами

1
find . -mindepth 1 -maxdepth 1 | perl -ne 'chomp; s/^..//;print "$_\n"; if (-d $_){print "dir\n";}else{print "file\n"};print "0\n";' | xargs -d '\n' dialog --stdout --separate-output --checklist file 100 100 100 | xargs -d '\n' {тут что вы хотите сделать, например rm -rf, без '{}'}