Есть 3 формы cp
и mv
cp/mv [OPTION]... [-T] SOURCE DEST
cp/mv [OPTION]... SOURCE... DIRECTORY
cp/mv [OPTION]... -t DIRECTORY SOURCE...
Формы 1 и 2 имеют форму cp / mv ab
, в форме 2 b
- существующий каталог, но в форме 1 b
адресат. Чтобы избежать этой двусмысленности, не используйте форму 2. Используйте форму 1 для того, что вы пытаетесь сделать, с -T
. Используйте форму 3, чтобы переместить или скопировать в существующий каталог.
Следующий скрипт, который мне удалось собрать вместе, кажется, делают это:
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'pty'
PTY.spawn(*ARGV) do |r,w,pid|
begin
while $_ = r.gets
STDOUT.print $_
end
rescue Errno::EIO
end
end
Он запускает свои аргументы CLI в псевдотургенерминальных и пересылающих выходные данные на STDOUT.
Пример использования:
./script.rb ls --color=auto >| file #file will have them ANSI color code sequences in it because ls did run in a terminal.