RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


linux:terminal:terminal_tnt_fs_files

Трюки в консоли: каталоги, файлы

cp: cannot stat

По крону выполняется команда

cp /home/rtfm/files/* /home/rtfm/bak

Получаю ошибку

Ошибка cp: cannot stat '/home/rtfm/files/*': No such file or directory

Директория files не всегда содержит файлы.
При использовании * копируются все файлы. Если директория пустая, то cp ищет файлы с именем *.

Решение простое, но неочевидное - вместо * ставим . и добавляем ключ -r

cp /home/rtfm/files/. /home/rtfm/bak

Вместо -r можно использовать -a (рекурсивно копирует + сохраняет все атрибуты файла, а также символические ссылки)

Вывод ls chmod в числовом формате

Разные варианты

Мне понравился вариант с askubuntu.

Закидываем в .bashrc функцию

function lsl2
   {
     find . -maxdepth 1 | sort |  xargs -I{} stat --format="%a %h %U %G %s %y %n" {}  | awk '{$7=substr($7,1,5);$8    =" ";print}'
   }

Скопировать файл без пробела в имени в файл с пробелом

Скопировать FooBar в Foo Bar

cp "FooBar" "Foo Bar"

или через \_ где _ это пробел

cp FooBar Foo\ Bar

logrotate не удаляет старые архивы

Rotate/maxage установлены, но gz архивов явно больше. Решение - добавить postrotate и find с mtime delete.

/home/john/logs/*.log {
        daily
        missingok
        rotate 14
        #maxage 14
        compress
        delaycompress
        notifempty
        create 640 devuf devuf
        sharedscripts
        postrotate
                find /home/john/logs/* -name "*.log.*.gz" -mtime +14 -delete
        endscript
}

Примеры GREP

Найти строку в текущей дире grep -R "find me" *
Найти строку в файле grep "find me" myfile.txt
Подсветить результат grep -R "find me" myfile.txt –color
Я не беспокоюсь о РЕГИСТРЕ grep -i "find me" myfile.txt
Покажите мне номер строки grep -n "find me" myfile.txt
Покажите в каком файле grep -l "find me" *
Как частво встречается grep -c "find me" myfile.txt
Покажите конкретный стринг
started, а не restarted, start или starting
grep -w "started" error.log
Покажите мне 5 строк до и 5 строк после интересующей меня строки grep "started" -B5 -A5 error.log или grep "started" -C5 error.log
Показать совпадение в начале строки grep "^find me" myfile.txt
Показать совпадение в конце строки grep "find me$" myfile.txt
Искать А или Б egrep "foo|bar" myfile.txt
Искать в gzip zgrep "find me" myfile.gz

Найти измененные файлы за последний день

$ find . -mtime -1
  • -amin последний доступ к файлам в минутах
  • -atime последний доступ к файлам в днях
  • -cmin время создания файлов в минутах
  • -ctime время создания файлов в днях
  • -mmin время модификации файлов в минутах

-mtime можно использовать еще и так

  • -1 последние 24 часа
  • -0.5 последние 12 часов
  • -0.25 последние 6 часов
  • +3 более чем 3 дня

Множество примеров по find - https://coderwall.com/t/find/popular

Удалить все файлы кроме определенного расширения

Рекурсивно удалить все файлы, кроме файлов с определенным расширением

find . -type f ! -name '*.txt' -delete

via

Найти последние 500 измененных директорий и файлов

Директории

find ./ -type d -printf '%T@ %p\t\t %t\n' | sort -k 1 -nr | sed 's/^[^ ]* //' | head -n 500

Файлы

find ./ -type f -printf '%T@ %p\t\t %t\n' | sort -k 1 -nr | sed 's/^[^ ]* //' | head -n 500

Удалить пустые строки в файле

sed '/^$/d' file-in.txt >> file-out.txt

Работает в zsh Lin/Mac

nice и ionice

Как минимизировать влияние бэкап-скрипта на интенсивность ввода/вывода в Linux (opennet)

Задача понизить влияние скрипта /etc/cron.d/backup.sh на систему (снизить нагрузку).

Уменьшить приоритет ввода-вывода

/usr/bin/ionice -c2 -n7 /etc/cron.d/backup.sh

Параметр -n может принимать значения от 0 до 7. 7 наименьший приоритет, 1 максимальный приоритет.

  • 1 - real time
  • 2 - нормальный режим
  • 3 - работа только в моменты простоя (idle)
  • 7 - cамый низкий уровень приоритета

Уменьшить приоритет CPU

/usr/bin/nice -n 19 /etc/cron.d/backup.sh

Параметр -n может принимать значения от -20 до 19. 19 наименьший приоритет, -20 максимальный приоритет.

nice и ionice можно комбинировать

/usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 /etc/cron.d/backup.sh

ls -la с датой и временем

ls -la

-rw-------.  1 root root      8487 Apr  1 10:21 .bash_history
-rw-r--r--.  1 root root        18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root       176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root       176 Dec 29  2013 .bashrc
drwx------.  3 root root        18 Feb  5 20:15 .config
-rw-r--r--.  1 root root      9908 Aug 10  2014 nux-dextop-release-0-5.el7.nux.noarch.rpm
-rw-r--r--.  1 root root  29345082 May 16  2019 serviio-2.0-linux.tar.gz

ls -la –time-style=long-iso

-rw-------.  1 root root      8487 2020-04-01 10:21 .bash_history
-rw-r--r--.  1 root root        18 2013-12-29 06:26 .bash_logout
-rw-r--r--.  1 root root       176 2013-12-29 06:26 .bash_profile
-rw-r--r--.  1 root root       176 2013-12-29 06:26 .bashrc
drwx------.  3 root root        18 2020-02-05 20:15 .config
-rw-r--r--.  1 root root      9908 2014-08-10 03:11 nux-dextop-release-0-5.el7.nux.noarch.rpm
-rw-r--r--.  1 root root  29345082 2019-05-16 00:30 serviio-2.0-linux.tar.gz

ls -la вывод прав в числовом формате

Вопрос вроде бы частый, но удобного решения не нашёл. Ухищрения с find или stat это слишком сложно.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
linux/terminal/terminal_tnt_fs_files.txt · Последнее изменение: 2023/06/17 02:36 — dx