Если я читаю Ваше право вопроса, Вы думаете скопировать/вставить функциональность, найденная в менеджерах по графическому файлу, где Вы "отмечаете" файлы, Вы хотите скопировать, перейти их месту назначения и вставить их там.
Отвечать на Ваш вопрос, короче говоря: Нет. То, что Вы хотите, не возможно на в нормальной оболочке удара. Задержать такую операцию, конечно, возможно с помощью сценариев, но я не уверен, что это стоит усилия в этом случае.
cd parent_directory/
for i in {-11..-10}
do
for j in -2 0
do
(
cd "E${i}_G/E${j}_U/"
ls -l ander ander.band ander.data
cat ander.in
cat ander.log
pwd
)
done
done
Примечания:
Вы можете зациклиться на ряде чисел, используя обозначение скобок:
для i в {-11. .-10}
Можно также выполнить цикл над явным списком элементов:
для j в -2 0.
Можно изменить каталог так, чтобы в нем было место, зависящее от переменных:
cd "E${i}_G/E${j}_U/".
Аргументом к команде cd
является директория, указанная относительно текущей директории. После того, как мы выполнили нашу работу в этой директории, мы хотим вернуться обратно в директорию parent_. Есть много способов справиться с этим, но один простой способ сделать это - поместить команду cd
и команды, которые должны быть выполнены в этом каталоге, в подоболочку, обозначенную паренами. После выхода из парен, каталог автоматически восстанавливается в том виде, в котором он был до этого.
Как более общее решение, можно использовать xargs
. Таким образом, можно отделить действие из списка каталогов, на которые вы хотите воздействовать.
Первая запись сценарий, который выполняет действия, в которых вы нуждаетесь:
#!/bin/bash
# Exit immediately on error
set -e
if [[ $# -ne 1 ]] ; then
echo "USAGE: $0 DIRECTORY" >&2
exit 1
fi
cd "$1"
ls -l ander ander.band ander.data
cat ander.in
cat ander.log
pwd
Mark сценарий как исполняемый файл:
chmod +x perform_ander.sh
Наконец выполненный:
find -type d -name 'E*_U' | xargs -n1 ./perform_ander.sh
Эти , находят
выводы команды все файлы соответствия к stdout
- тип d
ограничивает поиск каталогами
- имя 'E* _ U'
пределы поиск к каталогам, которые соответствуют шарику
, команда xargs
использует свой стандартный вход в качестве источника аргументов и называет данные команды с теми аргументами.
-n1
указывает, что не больше, чем 1 аргумент передается за один раз.