Анализ синтаксиса оболочки — это огромная работа, и обычно непростая.
Однако, если вы можете запустить строку один раз, вы можете позволить оболочке сделать это с помощьюset -x
:
wsl@win10:~ $ set -x
wsl@win10:~ $ echo 1 && ls haha &> /dev/null; pwd
+ echo 1
1
+ ls --color=auto haha
+ pwd
/home/wsl
wsl@win10:~ $
Как вы можете заметить, есть одно предостережение:alias
расширение (все расширение, на самом деле ).
Извлечение фактических команд, вероятно, было бы интересным после -школьного задания для читателей (подсказки :строк, начинающихся с плюса и пробела ).
Это работало с использованием цикла и cp -L
вместо readlink
. Я выполнил следующую команду в папке, содержащей символические ссылки:
for item in $(cat /path/dir/list.txt); do cp -L $item /path/targetdir; done
также у меня были проблемы с кодировкой txt-файла (, связанные с его созданием в R, но на компьютере с Windows ).