Я пытаюсь взять некоторые каталоги и перенести их из Linux в Windows. Проблема в том, что в файлах Linux есть двоеточия. И мне нужно скопировать эти каталоги (я не могу их напрямую изменить, так как они необходимы, так как они являются сервером) для файлов с именем, которое Windows может использовать. Например, имя каталога на сервере может быть:Удаление колоний из нескольких пластов в Linux
IAPLTR2b-ERVK-LTR_chr9: 113137544-113137860_-
в то время как мне нужно, чтобы это было:
IAPLTR2b-ERVK-LTR_chr9-113137544 -113137860_-
У меня около шестидесяти этих каталогов, и я собрал имена файлов с их абсолютными путями в файле, который я вызываю directories.txt. Мне нужно пройти через этот файл, изменив двоеточия на дефисы. До сих пор моя попытка это:
#!/bin/bash
$DIRECTORIES=`cat directories.txt`
for $i in $DIRECTORIES;
do
cp -r "$DIRECTORIES" "`echo $DIRECTORIES | sed 's/:/-/'`"
done
Однако я получаю ошибку:
./my_shellscript.sh: строка 10: =/bigpartition1/JKim_Test/test_bs_1/129c-тест-BIQ/IAPLTR1_Mm- ERVK-LTR_chr10: 104272652-104273004 _ +. Fasta: Нет такого файла или каталога ./my_shellscript.sh: строка 14: `$ i ': недействительный идентификатор
Может ли кто-нибудь здесь помочь мне определить, что я делаю неправильно, может быть, что мне нужно делать?
Заранее спасибо.
Все ли эти папки находятся в одном каталоге или разбросаны по файловой системе? Расскажите, пожалуйста, о том, где находятся все папки. Пример: рекурсивно? Распространяться через разные каталоги? Или в том же каталоге? Вы можете использовать rename -n 's /: //' *, если все они находятся в одном каталоге. – venki421
Все они находятся в одном и том же подкаталоге. Большое спасибо за ваш ответ. Я бы хотел их скопировать, а не переименовать, я бы просто изменил mv на cp? –
Вы в порядке, меняя имена папок в Linux, а затем копируете в Windows? – venki421