Это может быть полезно (в зависимости от типа оборудования):
dmesg
lspci
lsusb
Вот ответ на бесполезное использование xargs:
find \ (-name "* .log" -or -name "* .txt" \) -exec tar zcf archiv2 { } +
Я не тестировал его для большого количества файлов - был бы рад комментариям и числу, где он терпит неудачу.
Псевдоаргумент, который вам нужно запомнить, чтобы установить -delete как последний: ну да, вы тоже должны помнить, чтобы положить | xargs ... как последний, не так ли?
Это почти то же самое, что и ответ Рафаэля Б., но тот, который также будет обрабатывать максимальную длину аргумента. Мы делаем это, просто говоря tar, чтобы прочитать имена файлов для архивации из stdin (где нет ограничений) вместо того, чтобы ожидать их в качестве аргументов:
find. \ (-iname "* .log" -o -iname "* .txt" \) -print0 | tar --null --files-from = - -zcf "$ file"
Обратите внимание, что это специфичный для GNU. tar в других UNIX или UNIX-подобных системах не понимает - null
, но tar в Ubuntu - это GNU tar, поэтому он отлично работает.
Как насчет этого очень простого подхода:
find -iname '* .txt'; find -iname '* .log'
find. -regextype posix-extended -iregex '. * \. (log | txt)' -print0 | xargs -0 tar zcf $ file
Вы можете заменить '. * \. (log | txt)'
на любой POSIX Extended
Пример соответствует:
Любое число любого символа
, затем a.. [
then 'log' или 'txt'
blockquote>
Как насчет этого очень простого подхода:
find -iname '* .txt'; find -iname '* .log'
Вот ответ на бесполезное использование xargs:
find \ (-name "* .log" -or -name "* .txt" \) -exec tar zcf archiv2 { } +
Я не тестировал его для большого количества файлов - был бы рад комментариям и числу, где он терпит неудачу.
Псевдоаргумент, который вам нужно запомнить, чтобы установить -delete как последний: ну да, вы тоже должны помнить, чтобы положить | xargs ... как последний, не так ли?
find. -regextype posix-extended -iregex '. * \. (log | txt)' -print0 | xargs -0 tar zcf $ file
Вы можете заменить '. * \. (log | txt)'
на любой POSIX Extended
Пример соответствует:
Любое число любого символа
, затем a.. [
then 'log' или 'txt'
blockquote>
Это почти то же самое, что и ответ Рафаэля Б., но тот, который также будет обрабатывать максимальную длину аргумента. Мы делаем это, просто говоря tar, чтобы прочитать имена файлов для архивации из stdin (где нет ограничений) вместо того, чтобы ожидать их в качестве аргументов:
find. \ (-iname "* .log" -o -iname "* .txt" \) -print0 | tar --null --files-from = - -zcf "$ file"
Обратите внимание, что это специфичный для GNU. tar в других UNIX или UNIX-подобных системах не понимает - null
, но tar в Ubuntu - это GNU tar, поэтому он отлично работает.
Вот ответ на бесполезное использование xargs:
find \ (-name "* .log" -or -name "* .txt" \) -exec tar zcf archiv2 { } +
Я не тестировал его для большого количества файлов - был бы рад комментариям и числу, где он терпит неудачу.
Псевдоаргумент, который вам нужно запомнить, чтобы установить -delete как последний: ну да, вы тоже должны помнить, чтобы положить | xargs ... как последний, не так ли?
Как насчет этого очень простого подхода:
find -iname '* .txt'; find -iname '* .log'
Это почти то же самое, что и ответ Рафаэля Б., но тот, который также будет обрабатывать максимальную длину аргумента. Мы делаем это, просто говоря tar, чтобы прочитать имена файлов для архивации из stdin (где нет ограничений) вместо того, чтобы ожидать их в качестве аргументов:
find. \ (-iname "* .log" -o -iname "* .txt" \) -print0 | tar --null --files-from = - -zcf "$ file"
Обратите внимание, что это специфичный для GNU. tar в других UNIX или UNIX-подобных системах не понимает - null
, но tar в Ubuntu - это GNU tar, поэтому он отлично работает.
find. -regextype posix-extended -iregex '. * \. (log | txt)' -print0 | xargs -0 tar zcf $ file
Вы можете заменить '. * \. (log | txt)'
на любой POSIX Extended
Пример соответствует:
Любое число любого символа
, затем a.. [
then 'log' или 'txt'
blockquote>
Вот ответ на бесполезное использование xargs:
find \ (-name "* .log" -or -name "* .txt" \) -exec tar zcf archiv2 { } +
Я не тестировал его для большого количества файлов - был бы рад комментариям и числу, где он терпит неудачу.
Псевдоаргумент, который вам нужно запомнить, чтобы установить -delete как последний: ну да, вы тоже должны помнить, чтобы положить | xargs ... как последний, не так ли?
Как насчет этого очень простого подхода:
find -iname '* .txt'; find -iname '* .log'
Это почти то же самое, что и ответ Рафаэля Б., но тот, который также будет обрабатывать максимальную длину аргумента. Мы делаем это, просто говоря tar, чтобы прочитать имена файлов для архивации из stdin (где нет ограничений) вместо того, чтобы ожидать их в качестве аргументов:
find. \ (-iname "* .log" -o -iname "* .txt" \) -print0 | tar --null --files-from = - -zcf "$ file"
Обратите внимание, что это специфичный для GNU. tar в других UNIX или UNIX-подобных системах не понимает - null
, но tar в Ubuntu - это GNU tar, поэтому он отлично работает.
find. -regextype posix-extended -iregex '. * \. (log | txt)' -print0 | xargs -0 tar zcf $ file
Вы можете заменить '. * \. (log | txt)'
на любой POSIX Extended
Пример соответствует:
Любое число любого символа
, затем a.. [
then 'log' или 'txt'
blockquote>
Вот ответ на бесполезное использование xargs:
find \ (-name "* .log" -or -name "* .txt" \) -exec tar zcf archiv2 { } +
Я не тестировал его для большого количества файлов - был бы рад комментариям и числу, где он терпит неудачу.
Псевдоаргумент, который вам нужно запомнить, чтобы установить -delete как последний: ну да, вы тоже должны помнить, чтобы положить | xargs ... как последний, не так ли?
Это почти то же самое, что и ответ Рафаэля Б., но тот, который также будет обрабатывать максимальную длину аргумента. Мы делаем это, просто говоря tar, чтобы прочитать имена файлов для архивации из stdin (где нет ограничений) вместо того, чтобы ожидать их в качестве аргументов:
find. \ (-iname "* .log" -o -iname "* .txt" \) -print0 | tar --null --files-from = - -zcf "$ file"
Обратите внимание, что это специфичный для GNU. tar в других UNIX или UNIX-подобных системах не понимает - null
, но tar в Ubuntu - это GNU tar, поэтому он отлично работает.
/some/path/other/other/other/file1.txt
и /some/path/other/other/other/file2.txt
и т. Д. Таким образом, команда удалила несколько файлов. Чтобы обойти это, я сначала cd / some / path / other / other
и выполняю поиск оттуда.
– OscarRyz
21 January 2011 в 01:44
printf% s /some/path/other/other/other/file1.txt | wc -c
? Также вы видите, какая программа выдает сообщение об ошибке? найти, xargs или tar?
– geirha
21 January 2011 в 12:14
Как насчет этого очень простого подхода:
find -iname '* .txt'; find -iname '* .log'
find. -regextype posix-extended -iregex '. * \. (log | txt)' -print0 | xargs -0 tar zcf $ file
Вы можете заменить '. * \. (log | txt)'
на любой POSIX Extended
Пример соответствует:
Любое число любого символа
, затем a.. [
then 'log' или 'txt'
blockquote>
find: invalid predicate -regextype
, но это привело меня к рабочей версии find. -regex '. * \. \ (log \ | txt \)' -print0 ... и т. д.
– OscarRyz
5 January 2011 в 01:59
posix-extended
, awk
, gnu-awk
или posix-egrep
, используя параметр -regextype
.
– dv3500ea
5 January 2011 в 02:10