TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.71K subscribers
Post #323 3.05K
Извлечение имени файла с basename

Если вы пишете скрипты в Linux, утилита basename — ваш надёжный помощник. Её задача проста: извлекать имя файла из полного пути.

# basename /var/log/auth.log
auth.log


Также можно сразу убрать расширение файла:

# basename /var/log/auth.log .log
auth


Где это полезно? Например, нужно передать через rsync только новые бэкапы:

# rsync -av --files-from=<(ssh root@10.10.1.10 \
'/usr/bin/find /var/lib/pgpro/backup -type f -mtime -1 \
-exec basename {} \; | egrep -v timestamp') \
root@10.10.1.15:/var/lib/pgpro/backup/ /data/backup/


Сначала на удалённом сервере формируется список файлов через find, имена очищаются basename, лишнее отсекается через egrep. Всё передаётся в rsync.

Другой пример: смена расширений у всех .txt файлов на .log:

# for file in *.txt; do mv "$file" "$(basename "$file" .txt).log"; done


Это лишь один из множества способов.

Альтернативы: rename, find с xargs.


#linux #bash

🧑‍💻 NetworkAdmin | ⚙️ EasyTools
  • 👍 11
  • 🔥 3
More from @networkadminru
  1. Oct 5, 2026✍️ DNS-диагностика без гадания и браузера Когда сайт не открывается, очень легко сразу обв…
  2. Oct 1, 2026✨ Systemd-команды, которые быстро дают информацию о системе У systemd есть несколько коман…
  3. Sep 30, 2026🖥 Get-ADUser: полезные примеры для работы с пользователями Active Directory Get-ADUser -…
  4. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  5. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  6. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →