Comments 53
Интересная ситуация с именами файлов, которые начинаются с дэфиса.
А так, спасибо за интересные извращения аля hex-имена, такое в голову не пришло бы…
А так, спасибо за интересные извращения аля hex-имена, такое в голову не пришло бы…
Еще один момент есть по поводу служебных символов — это бэкслэши в именах файлов. При просмотре один бэкслэш ( \ ), при удалении его, соответственно, надо экранировать им же, то есть удваивать.
Еще в ~/.inputrc можно добавить строчку
TAB: menu-complete
И тогда по табу bash будет перебирать варианты, сразу подставляя их в командную строку, как vim.
TAB: menu-complete
И тогда по табу bash будет перебирать варианты, сразу подставляя их в командную строку, как vim.
Огонь! Спасибо! Из всего что есть — самое универсальное для себя взял вот это:
select i in *; do rm -f $i; done
А бывают папки в которые попасть можно вот так(до этого делал так: mc, переход в папку, ctrl^o):
select i in *; do cd $i; done
select i in *; do rm -f $i; done
А бывают папки в которые попасть можно вот так(до этого делал так: mc, переход в папку, ctrl^o):
select i in *; do cd $i; done
В никсах для rm не предусмотрено стандартного или хотя бы распространённого способа отката удаления, вроде «корзины» в Windows?
Да, я знаю про никсовую философию, которая даёт пользователю широкие возможности по порче файлов и системы, предполагая, что он «знает, что делает», но ведь все мы люди и склонны ошибаться.
Да, я знаю про никсовую философию, которая даёт пользователю широкие возможности по порче файлов и системы, предполагая, что он «знает, что делает», но ведь все мы люди и склонны ошибаться.
Так в Windows DEL тоже мимо корзины удаляет. А всякие Nautilus корзинкой пользуются.
О, вроде и там и там можно указать ключик для интерактивного удаления и на каждый файл будет спрашивать что с ним делать.
Shift+Del — мимо корзины.
Del — в корзину (если корзина не отключена)
Del — в корзину (если корзина не отключена)
Ну так можно использовать UNDELETE =)
Это если FAT и постоянно не производится запись на диск.
А так команда порой выручала.
Шла в составе MS-DOS 5 и выше, если не ошибаюсь.
Это если FAT и постоянно не производится запись на диск.
А так команда порой выручала.
Шла в составе MS-DOS 5 и выше, если не ошибаюсь.
Во всех ОС в корзину удаляют только GUI программы, которые работают с юзером. Если с командной строки удалять файл, то в корзину он не попадает, т.к. кто знает, может это скрипт удаляет временные файлы и их создают и удаляют тысячами каждую секунду.
Корзина есть не что иное, как специальная папка для «удаленных» файлов. И в Windows тоже.
Так что можете создать новую, или использовать имеющуюся, и вместо удаления переносить туда файлы.
Делов-то.
Так что можете создать новую, или использовать имеющуюся, и вместо удаления переносить туда файлы.
Делов-то.
ага, и создать alias на команду rm
Только не будет функции восстановления и из файлов с одинаковыми именами выживет лишь последний.
Еще лучше создать alias shd
alias shd='rm -rf ~'
(это шутка, как в рекламе, не нужно это пытаться повторить в действительности :) )Как видно, чтобы осуществить правильное перекодирование нужно знать две кодировки: предполагаемую кодировку файла и кодировку нашего терминала.
Я бы был поосторожнее с такой формулировкой. Тут скорее смысл не в том чтобы сделать кодировку файлов такой же как и кодировка терминала (которая могла случайно оказаться таковой в данный момент), а хорошо подумать в какой кодировке должны быть ваши файлы в итоге.
Что-то мне кажется что -f примерах — лишнее. Постановка -f должна быть осознана под ситуацию.
> С помощью одинарных кавычек нельзя удалить файл, в названии которого есть одинарная кавычка, даже заэкранировав ее.
На всякий случай:
На всякий случай:
rm 'actually it'\''s easy'
Вообще, для команды rm у Linux GURU есть чудесное правило. Называется — «правило двух рук».
Перед запуском команды рукм положить под пятую точку. Затем попробовать «поднатужиться».
Если получится как у прапорщика в анекдоте — появится дополнительное время для обдумывания, пока будет приниматься душ и стираться белье… Если нет — смело жать «Enter» — ОНО само придет! :)
Перед запуском команды рукм положить под пятую точку. Затем попробовать «поднатужиться».
Если получится как у прапорщика в анекдоте — появится дополнительное время для обдумывания, пока будет приниматься душ и стираться белье… Если нет — смело жать «Enter» — ОНО само придет! :)
Угу. А в ~/.my.cnf (при работе с MySQL) дописать:
Или при запуске клиента передавать опцию --safe-updates, либо --i-am-a-dummy (тот же эффект).
В этом режиме нельзя выполнить запрос DELETE или UPDATE, если в нём не указано условие WHERE. Поэтому, если вы случайно забыли добавить WHERE, то вы просто получите ошибку:
По умолчанию этот режим, кстати, добавляет ещё пару ограничений (которые, впрочем, можно отключить — но на практике это требуется редко): для select_limit устанавливается значение 1000, а для max_join_size — 1000000.
safe-updates
Или при запуске клиента передавать опцию --safe-updates, либо --i-am-a-dummy (тот же эффект).
В этом режиме нельзя выполнить запрос DELETE или UPDATE, если в нём не указано условие WHERE. Поэтому, если вы случайно забыли добавить WHERE, то вы просто получите ошибку:
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
По умолчанию этот режим, кстати, добавляет ещё пару ограничений (которые, впрочем, можно отключить — но на практике это требуется редко): для select_limit устанавливается значение 1000, а для max_join_size — 1000000.
я невнимательный. комментарий удалён.
Если имя файла содержит символ в кодировке utf8, который мы не можем набрать на клавиатуре, то удалить такой файл можно выделением его мышкой, копированием в буфер обмена и последующей вставкой на ввод команды rm.
А если я без иксов сижу, есть способ?
Как вариант
ls > file
Удаляете всё ненужное в виме, дописываете rm. Потом sh ./file Теоретически должно сработать
ls > file
Удаляете всё ненужное в виме, дописываете rm. Потом sh ./file Теоретически должно сработать
Вы в консоли без мыши сидите? Откройте для себя gpm.
Нет, не сижу. Просто заинтересовало, есть ли такая возможность вообще. Спасибо за наводку. Обязательно открою.
gpm для мыши, mplayer через фреймбуфер, графический режим links через тот же фреймбуфер, screen для нарезания экрана на части, активное использование Alt+F[1-6]. И зачем вообще иксы?
Жаль нвидиовские проприетарные дрова с фреймбуфером не дружат.
Жаль нвидиовские проприетарные дрова с фреймбуфером не дружат.
Спасибо. Но пробовал. Много что уже пробовал.
Скажите пожалуйста, а есть что-то кроме mplayer'а для просмотра в полный экран через фреймбуфер с сохранением соотношения сторон?
А то я так месяц просидел с фреймбуфером раз, на иксы ушел только из-за отсутствия нормального сохранения соотношения сторон автоматом, руками надо было параметр выставлять. Или сейчас mplayer так умеет?
А то я так месяц просидел с фреймбуфером раз, на иксы ушел только из-за отсутствия нормального сохранения соотношения сторон автоматом, руками надо было параметр выставлять. Или сейчас mplayer так умеет?
К сожалению у меня сейчас уже не сохранился конфиг, а фреймбуфр работает так себе.
Не помню удавалось ли мне решить проблему в общем виде одним конфигом, но кажется да. Может при помощи фильтра.
В худшем случае можно запускать скриптом: через mplayer -ao null -vo null -frames 0 -identify "$@" выцепить оригинальный размер (ID_VIDEO_WIDTH и ID_VIDEO_HEIGHT) и отмасштабировать (разрешение можно взять из /sys/class/graphics/fb0/virtual_size).
Не помню удавалось ли мне решить проблему в общем виде одним конфигом, но кажется да. Может при помощи фильтра.
В худшем случае можно запускать скриптом: через mplayer -ao null -vo null -frames 0 -identify "$@" выцепить оригинальный размер (ID_VIDEO_WIDTH и ID_VIDEO_HEIGHT) и отмасштабировать (разрешение можно взять из /sys/class/graphics/fb0/virtual_size).
Спасибо. Я как-то так и запускал, но, к сожалению, работало не всегда корректно, через раз. Может быть старое ПО было на тот момент. Одним конфигом добиться вообще не удалось, вычислял скриптом.
Не правильно выразился. Оно действительно работает, но не родное для монитора соотношение сторон смотрится, мягко говоря, плохо.
Как быстрый и простой вариант — всякие «плохие» файлы кучей можно удалять через midnight commander, если он есть в системе конечно.
$ rm -f *
С этим аккуратнее. Представьте, что найдётся файл с названием "-r".
Маски — не панацея! Или, по крайней мере, используйте "./*" (но это не съест файлы, начинающиеся с точки)
datacompboy@nuuzerpogodible:~$ touch ./-rwer.qqq
datacompboy@nuuzerpogodible:~$ rm *qqq
rm: неверный ключ — w
Попробуйте «rm ./-rwer.qqq», чтобы удалить файл «-rwer.qqq».
Попробуйте «rm --help» для получения более подробного описания.
datacompboy@nuuzerpogodible:~$
datacompboy@nuuzerpogodible:~$ touch ./-rwer.qqq
datacompboy@nuuzerpogodible:~$ rm *qqq
rm: неверный ключ — w
Попробуйте «rm ./-rwer.qqq», чтобы удалить файл «-rwer.qqq».
Попробуйте «rm --help» для получения более подробного описания.
datacompboy@nuuzerpogodible:~$
Sign up to leave a comment.
Работа с «плохими» файлами в командной строке в Linux