Случайно использовал mv в скрипте оболочки и перемещал файлы. Где на Mac работают скрипты оболочки по умолчанию?

3

Я случайно создал и запустил эту оболочку 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/

Где скрипты оболочки запускаются по умолчанию?

  • 0
    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' . Также * не должен копировать скрытые файлы.
  • 0
    Как ваш сценарий оболочки существует в каталоге, который еще не был создан?
Показать ещё 3 комментария
Теги:
macos

2 ответа

1

Сценарии оболочки наследуют свой рабочий каталог из процесса, запускающего их. Если вы запустите его из интерактивной оболочки, это будет любой каталог, в котором вы были, когда вы его запускали. Это не имеет никакого отношения к каталогу, в котором находится script. Я бы использовал Finder для поиска каталога "container".

Из списка перемещенных файлов и каталогов, которые вы перечисляете, я бы предположил, что это было в корневом каталоге, то есть на верхнем уровне вашего загрузочного диска, aka "/".

0

Просто запустите

find / -type d -name container 2>/dev/null

и найдите его.

ИЗМЕНИТЬ

Поскольку container не имеет пути в вашем script, единственная возможность заключается в том, что перемещенные файлы были в родительском контейнере.

  • 0
    Это чтобы найти каталог контейнера? Я уже знаю, где это. Я не знаю, откуда взялись скопированные файлы.
  • 0
    Эти файлы не пришли из каталога, где находится скрипт bash. Я не знаю откуда они пришли
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню