командная оболочка bash в одной строке - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу найти последний измененный файл и затем переместить его под другим именем в одну строку.

Я пробовал это, но это не сработало:

ls -t latestfile* | head -1 | xargs mv {} newfilename

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Сохраняйте это простым.

mv "$(ls -t latestfile*|head -1)" newname

На самом деле не должно быть парсинга выходных данных ls, но сейчас мне трудно подумать о лучшем способе работы с одной строкой...

0 голосов
/ 29 ноября 2018

со страницы руководства xargs :


 -I replace-str

        Replace occurrences of replace-str in the initial-arguments with names
        read from standard input. Also, unquoted blanks do not terminate input
        items; instead the separator is the newline character. Implies -x and -L 

Вы используете строку замены без указания флага, который ее разрешает.Попробуйте:

ls -t latestfile* | head -1 | xargs -I {} mv {} newfilename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...