Я пытаюсь написать сценарий в tcsh, который будет копировать выбранные файлы, которые я указываю в командной строке, из одного каталога в другой без необходимости записывать полный путь каждого файла.

Также, чтобы уточнить, скажем, например, у меня есть 30 из этих файлов в одном каталоге, все с почти одинаковыми именами, но я хочу, чтобы только 4 из файлов были скопированы (т.е. я не думаю, что здесь можно использовать подстановочный знак),

Как последнее замечание, я очень новичок в Unix, поэтому любые "тупые" предложения о том, как написать этот скрипт, будут высоко оценены!

1 ответ1

0

Команда cp уже сделает это за вас. Попробуй это:

> cd /path/to/files
> cp file1 file2 file3 file4 /path/to/destination

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

Если вы действительно хотите написать свой собственный скрипт, попробуйте это:

#!/bin/tcsh

cd /path/to/files
cp $* /path/to/destination

поместите его в файл, такой как move.tcsh и выполните команду chmod +x move.tcsh чтобы сделать его исполняемым. Этот скрипт делает то же самое, что и выше. В сценарии tcsh $* представляет все аргументы командной строки.

В обоих случаях убедитесь, что вы указали правильные пути для /path/to/files и /path/to/destination В этом случае, когда задача настолько проста, более правильный способ сделать это - прямо из командной строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .