Я случайно создал и запустил эту оболочку script
#!/bin/bash
mkdir container
mv * container
Это переместило кучу файлов в каталог контейнера, где была оболочка script, но также перемещала кучу файлов, которые я не собирался перемещать.
All Mail
backup
HaxeFlixelProject
chaos
Installer Log File
chaos.pyc
Network
cores
Python
installer.failurerequests
Resources
modules
User Guides And Information opt
User Information test.sh
Volumes
Я намеревался переместить только файлы, находящиеся в каталоге script
test1.txt
test2.txt
test3.txt
Я ожидал, что моя оболочка script будет запущена в папке, в которой находится оболочка script.
Desktop/test/1/
Где скрипты оболочки запускаются по умолчанию?
Сценарии оболочки наследуют свой рабочий каталог из процесса, запускающего их. Если вы запустите его из интерактивной оболочки, это будет любой каталог, в котором вы были, когда вы его запускали. Это не имеет никакого отношения к каталогу, в котором находится script. Я бы использовал Finder для поиска каталога "container".
Из списка перемещенных файлов и каталогов, которые вы перечисляете, я бы предположил, что это было в корневом каталоге, то есть на верхнем уровне вашего загрузочного диска, aka "/".
Просто запустите
find / -type d -name container 2>/dev/null
и найдите его.
Поскольку container
не имеет пути в вашем script, единственная возможность заключается в том, что перемещенные файлы были в родительском контейнере.
but it also moved a bunch of files I didn't intend to move.
это звучит маловероятно (не противореча тому, что вы сказали, хотя). обычноmv
следует прервать со статусом выхода1
это сообщениеcannot move 'container' to a subdirectory of itself, 'container/container'
. Также*
не должен копировать скрытые файлы.