Intereting Posts
Grub работает, но не efistub Двойная загрузка PCBSD – Windows 7 Если количество строк в строке csv больше, чем x, то удалите второй экземпляр Каковы последствия установки скорости передачи данных в терминале из пользовательского пространства? Как я могу получить SQL-запросы для отображения в выходном файле? Разрешения на доступ к файлу дампа FreeBSD Текст как блок на Kali Linux Роллинг после apt-get upgrade Скрипт мониторинга, запущенный rc.local Установите передачу как программу по умолчанию при открытии магнитных ссылок Можно ли установить весь жесткий диск (раздел) как цель iscsi? Программа BASH для удаления файлов, ожидаемое выражение Integer Инструмент для создания текстовых файлов из шаблона Почему чашки не обнаруживают мой USB-принтер canon selphy Хранение терминала xterm в режиме реального времени на crunchbang linux debian wheezy На устройстве не осталось места – Debian

Как tar только файлы в нескольких каталогах, но не в каталоге?

У меня есть три папки в папке Test.

Test ----> dir1, dir2, dir3 

В dir1, dir2 и dir3 у меня много файлов. Я хочу, чтобы tar только файлы не dir1, dir2 и dir3.

В Test :

 pax -w's|.*/||' dir[1-3]/* | xz > file.tar.xz 

будет архивировать файлы без их компонентов пути.

Обратите внимание, что dir[1-3]/* опускает скрытые файлы. Для символических ссылок -s также будет переписывать цели символической ссылки.

Если вам нужны только обычные файлы, и если ни одно из ваших имен файлов не содержит символов новой строки, вы можете сделать следующее:

 find dir[1-3] -type f | pax -ws'|.*/||' | xz > file.tar.xz 

Если имена файлов могут содержать символы новой строки, в некоторых системах вы можете написать:

 find dir[1-3] -type f -print0 | pax -w0s'|.*/||' | xz > file.tar.xz 

Хотя find и pax являются стандартными командами, -print0 и -0 не являются такими YMMV.