Архіви позначок: find

Перекодування файлів

Поширте інформацію:

Свої перші сайти я написав у кодуванні Windows-1251. Це, звісно, було неправильно і спричинило проблеми у майбутньому. Довелося перекодовувати всі файли в каталозі і його підкаталогах на UTF-8. Але в Linux це зробити легко за допомогою команд iconv та find.

Читати далі

Корисні поради для Linux

Поширте інформацію:

-Знайти файли, змінені вчора, крім тих, що знаходяться в підкаталогах application/cache або application/logs

find . \( -wholename ./application/cache -o -wholename ./application/logs \) -prune -o -type f -mtime -1 -daystart -print

-Вилучити файли, знайдені в попередньому прикладі

find . \( -wholename ./application/cache -o -wholename ./application/logs \) -prune -o -type f -mtime -1 -daystart -exec rm -rf {} \;

-Знайти рекурсивно, починаючи з поточного каталога, файли, що містять текст sometext. Пропускати підкаталоги з назвою .svn

grep -r --exclude-dir='.svn' 'sometext' .

-Замінити перше входження символів day у кожному рядку файла old на символи night і зберегти результат у файл new

sed 's/day/night/' <old >new

Замінити всі входження символів day у кожному рядку

sed 's/day/night/g' <old >new

Або змінювати в тому ж файлі

sed -i 's/day/night/g' samefile

Дуже старі версії sed такого ключа не підтримують, там треба так:

sed 's/day/night/g' samefile >tmpfile; mv tmpfile samefile

Чудово, що розділювачем може бути не тільки слеш (/), а будь-який символ, що дозволяє замінювати повні шляхи до файлів. Наприклад, кома

sed -i 's,path/to/file,new/path/to/file,g' samefile

-Поєднуємо grep і sed – замінюємо всі фрагменти тексту у всіх файлах однією командою!

grep -rl --exclude-dir='.svn' 'oldtext' . | xargs sed -i 's/oldtext/newtext/g'

-Перевірити контрольні суми

sha1sum file
md5sum file

-Записати образ на флешку

dd if=/path/to/file.iso of=/dev/sdb

/dev/sdb – назва пристрою. Його можна дізнатися за допомогою

mount

або

sudo fdisk -l

-Або можна записати образ за допомогою програми з графічним інтерфейсом unetbootin

-Як в linux подивитися список користувачів, список груп? Дуже просто

$ cat /etc/passwd
$ cat /etc/group

-Як перемонтувати флешку, щоб не витягувати і вставляти знову?

$ su -c 'eject /dev/sdb; sleep 1; eject -t /dev/sdb'