2017-01-13 2 views
0

Как можно создать инструкцию find, чтобы удалить ведущую косую черту с абсолютных имен путей и доставить элементы для добавления в tar в качестве относительных путей в чтобы избежать нежелательной ошибки: «tar: Удаление ведущего«/»из имен участников»?Найти/SED, чтобы преобразовать абсолютный путь в относительный путь в одной строке tar-инструкции для crontab

Текущее заявление:

# tar -zcvf /root/TEST1-strip-slash-find-statement.tar.gz `find /root/test -mmin -1450 -print` 

Производит следующий вывод на Ubuntu 16.04 LTS оболочки Bash

tar: Removing leading `/' from member names 
/root/test/ 
/root/test/file2.txt 
/root/test/file3.txt 
/root/test/file1.txt 
/root/test/file4.txt 
tar: Removing leading `/' from hard link targets 
/root/test/file2.txt 
/root/test/file3.txt 
/root/test/file1.txt 
/root/test/file4.txt 

Поиск посылает ведущий слэш деготь: дегтя: Удаление ведущего `/» из членов имена

Как можно изменить формулировку поиска, чтобы сначала отделить ведущие косые черты от абсолютных имен пути, а затем отправить относительное имя пути к tar?

Когда эта команда запускается из crontab, в результате ошибки косой черты приводит к отправке многочисленных сообщений электронной почты о tar: Удаление ведущих `/ 'из имен участников. I Необходимо продолжать получать электронные письма для других ошибок, поэтому отключение отправки электронной почты с помощью dev/null или mailto = "" не является вариантом.

ответ

1

Чтобы избавиться от «дегтя: Удаление ведущего` /»из имен»:

Добавить -C / и удалить ведущие / из ваших путей.

tar -C/-zcvf /root/TEST1-strip-slash-find-statement.tar.gz `find /root/test -mmin -1450 -print | sed 's|^/||'` 
+0

Чистый гений, спасибо! – ml48603

Смежные вопросы