mv: целевой 'Nfilename' не является ошибочной справкой каталога

Я плохо знаком с Ubuntu и кодирующий в целом, но должен использовать ее, чтобы сделать некоторый анализ молекулярных данных упорядочивания, и я застреваю!

Я недавно переместился со своего ноутбука на более мощный ПК (оба с VM, смонтированным в нем), и часть моего сценария теперь больше не работает.

Код, который я использую для разделения одного файла (Map.txt) на отдельные файлы затем, переименовывает каждый файл и наконец добавляет, что строка заголовка от исходного файла до каждого отдельного файла:

$ tail -n +2 Map.txt | split -l 1

$ awk '{cmd="echo " $0 ">" $1; system(cmd)}' x*

$ for file in `ls N*`; do echo "`head -1 Map.txt`" > tmp; cat $file >> tmp; mv –f tmp $file; done

Каждая команда выполняется индивидуально, но я теперь получаю ошибку при высказывании:

mv: target 'NC2B7' is not a directory

когда я выполняю третью команду выше ($ для файла в и т.д.). Я не уверен, почему эта команда внезапно не работает, я использовал старый Oracle VM VirtualBox на своем ноутбуке и теперь использую Oracle VM VirtualBox v5.2.18 с человечностью 16.04 для выполнения QIIME.

Кто-то может сказать мне, какова могла быть причина этого и / или какова третья команда должна теперь быть?

1
задан 8 October 2018 в 18:42

1 ответ

Изменение

$ for file in `ls N*`; do echo "`head -1 Map.txt`" > tmp; cat $file >> tmp; mv –f tmp $file; done

кому:

$ for file in `ls N*`; do echo "`head -1 Map.txt`" > tmp; cat $file >> tmp; mv -f tmp $file; done

Различие не легко видеть, но в Вашей команде Вы использовали длинного тире вместо нормального тире в mv- команда, -f- опция. Я протестировал его, и это работало.

Для предотвращения несчастных случаев с именами файлов, содержащими пробелы, необходимо добавить некоторые двойные кавычки:

$ for file in `ls N*`; do echo "`head -1 Map.txt`" > tmp; cat "$file" >> tmp; mv -f tmp "$file"; done

Вы могли также упростить целую команду до

$ for file in N*; do head -1 Map.txt > tmp; cat "$file" >> tmp; mv -f tmp "$file";

который был предложен @PerlDuck. Конечно, я протестировал это предложение прежде, чем добавить его к этому ответу.

1
ответ дан 7 December 2019 в 15:13

Другие вопросы по тегам:

Похожие вопросы: