У мене є кілька каталогів із різною кількістю файлів та підкаталогів. Усі файли, що не мають розширень, мають бути tar
відредаговані. Їх імена можуть змінюватися, тому їх неможливо жорстко закодувати. Підкаталоги також можуть містити не визначене число файлів і підкаталогів, які не мають значення і не повинні включатися до архіву.
Мені б хотілося це зробити за допомогою одного рядка, не використовуючи жодних .sh
сценаріїв, щоб цей процес міг бути відтворений як можна більш портативно.
Приклад структури каталогів:
$ ls -1F
bar-dir/
bar.with.dots
foo-directory/
foo-no-ext
quux.dir/
quux.ext
Отримане tar
має містити лише foo-no-ext
в цьому випадку.
Найближчий, з яким я придумав цей далекий, - це
tar -cf archive.tar --exclude=*.* --no-recursion *
Але, виконуючись на наборі зразків, archive.tar
все ще включає підкаталоги (навіть незважаючи на порожні):
$ tar -tf archive.tar
bar-dir/
foo-directory/
foo-no-ext
bash
абоperl
абсолютно однакова у всіх системах, хочаtar
може бути GNU, BSD, Solaris tar ...