Я пытаюсь использовать следующую строку, чтобы извлечь первый файл в каталоге:дегтя выхода без сообщения, не архив, а статус выхода 0
tar xzvf `ls -1 | head -n1 | tail -1` --force-local
По какой-то причине, деготь просто выходит без бросая ошибку и не создавая архив. Если я вручную набираю имя файла, он отлично работает.
Единственная потенциальная проблема, которую я вижу, заключается в том, что мои имена файлов содержат двоеточия. Тем не менее, я попытался сделать то же самое с mv, и все сработало:
mv `ls -1 | head -n1 | tail -1` newfile
И файл переименован правильно.
Любая идея, в чем проблема, или как я могу ее отладить?
Команда 'tar', которую вы перечисляете, предполагает, что первый файл в алфавитном списке текущего каталога является сжатым tar-файлом и пытается извлечь его. Если на самом деле этот файл является надлежащим архивом, как он был создан? У файлов внутри есть абсолютные имена путей, относительные имена путей или имена путей? Возможно, это пустой файл или пустой архив? – twalberg
этот файл должен быть законным gzip'd tar-файлом. проверьте содержимое файла. – pizza
Это законный gzip-файл. Как я уже сказал, если я вручную набираю имя файла в команде, все работает отлично. – Dan