2012-06-25 1 views
0

Я пытаюсь использовать следующую строку, чтобы извлечь первый файл в каталоге:дегтя выхода без сообщения, не архив, а статус выхода 0

tar xzvf `ls -1 | head -n1 | tail -1` --force-local 

По какой-то причине, деготь просто выходит без бросая ошибку и не создавая архив. Если я вручную набираю имя файла, он отлично работает.

Единственная потенциальная проблема, которую я вижу, заключается в том, что мои имена файлов содержат двоеточия. Тем не менее, я попытался сделать то же самое с mv, и все сработало:

mv `ls -1 | head -n1 | tail -1` newfile 

И файл переименован правильно.

Любая идея, в чем проблема, или как я могу ее отладить?

+0

Команда 'tar', которую вы перечисляете, предполагает, что первый файл в алфавитном списке текущего каталога является сжатым tar-файлом и пытается извлечь его. Если на самом деле этот файл является надлежащим архивом, как он был создан? У файлов внутри есть абсолютные имена путей, относительные имена путей или имена путей? Возможно, это пустой файл или пустой архив? – twalberg

+1

этот файл должен быть законным gzip'd tar-файлом. проверьте содержимое файла. – pizza

+0

Это законный gzip-файл. Как я уже сказал, если я вручную набираю имя файла в команде, все работает отлично. – Dan

ответ

1

Файл tar был в конечном счете не подходящим файлом tar. Я неправильно печатал имя файла. Если у вас есть аналогичная проблема, убедитесь, что файл не пуст или другого типа содержимого.

+0

Положите другой путь: проверьте себя, прежде чем вы потерпите поражение. – Dan

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

  • Нет связанных вопросов^_^