Почему я получаю пустой файл при использовании "cp" или "mv"? - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь перезаписать существующий файл другим.Я заменяю существующий файл следующим образом:

cp -f /tmp/workspace.xml > /system/TEST/workspace.xml 

Новый созданный файл, к сожалению, пуст и не содержит ничего из исходного файла.

Я также попробовалследуя но я получаю тот же результат.

mv -f /tmp/workspace.xml > /system/TEST/workspace.xml

Почему это?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

> перенаправляет вывод команды.Это не говорит команде, куда поместить файл.Вывод команды copy с недостаточными аргументами - ничто, поэтому вы получаете пустой файл.

Помните, что > перенаправляет только «STDOUT», и есть еще один выходной канал, называемый STDERR, который должен быть перенаправлен отдельно.

Правильный способ копирования файла:

cp -f /tmp/workspace.xml /system/TEST/workspace.xml

Вы также можете переместить его:

mv -f /tmp/workspace.xml /system/TEST/workspace.xml

Вы будете использовать >, только если вы заботитесь о захватевывод, как в этом случае:

cat /tmp/workspace.xml > /system/TEST/workspace.xml

, который в этом случае направляет вывод cat в целевой файл, который работает, потому что это то, что cat должен делать.

0 голосов
/ 19 октября 2018

не используйте оператор перенаправления (>) для mv или cp, также вам не нужно указывать имя файла в месте, которое вы хотите перезаписать

  mv -f folder_with_file_to_move/workspace.xml destination_folder_with_file_to_overwrite
...