Lo que quiere es cerrar el descriptor de archivo que en Bourne -como shell se hace con>&-
(por defecto a fd 1 )o<&-
(por defecto a fd 0 )operador:
exec >&-
exec 1>&-
exec 1<&-
son todos equivalentes y dan como resultado que se realice una llamada al sistema close(1)
.
Tenga en cuenta que generalmente es una mala idea cerrar los descriptores de archivo 0, 1 y 2, ya que la mayoría de los comandos esperan que estén abiertos (es su stdin, stdout y stderr ), y abrir un archivo podría causar que archivo para convertirse inadvertidamente en su stdin/stdout/stderr y lo que imprimen en stdout o stderr podría terminar siendo escrito en esos archivos.
Вы смотрели результат? Он сказал что-то вроде
mv: target ‘some filename’ is not a directory?
В общем, еслиcmd
выводит a
, b
и c
, и вы запускаете
cmd | xargs d e fзатем
xargs
запустится d e f a b cИтак, ваша команда заставила
xargs
запустить mv ~/Documents file1 file2 file3 …
mv
работает не так. Попробуйте
(your tar command) | xargs mv -t ~/Documents
Обратите внимание, что :вам, вероятно, следует сначала убедиться, что версия mv
в вашей системе поддерживает опцию -t
. Если бы вы работали в Linux, это было бы практически гарантировано, но я не уверен насчет macOS.