Удалить файл из другого каталога - PullRequest
1 голос
/ 28 сентября 2010

Как удалить определенные файлы из каталога, отличного от $PWD, используя скрипт оболочки bash.

Глядя на документацию для rm, выясняется, что rm работает только в $PWD.

Я вынужден использовать этот метод:

oDir=$PWD
cd directorytoremovefiles
rm files
cd oDir

Ответы [ 3 ]

2 голосов
/ 28 сентября 2010

rm определенно работает для удаления файлов в другом каталоге.

Что бы ни дало вам эту идею со страницы руководства, я, конечно, надеюсь, что это , а не это:

rm удаляет каждый указанный файл. От по умолчанию не удаляет каталоги.

В документации, на которую вы ссылаетесь, говорится только о наличии записи & разрешения на каталог, который вы удаляете.

Так что вам нужно только:

rm directorytoremovefiles/files
2 голосов
/ 28 сентября 2010

Как отмечает YYC,

rm $DIR/files 
0 голосов
/ 28 сентября 2010

rm примет любой путь, относительный или абсолютный. Если в начале directorytoremovefiles нет косой черты, то это относительный путь, и вам может потребоваться сохранить PWD для дальнейшего использования. Однако вы можете сделать это с помощью pushd и popd или cd -, как только вы закончите. Или, если вы запустите команды cd и rm в скобках, они будут выполняться в подоболочке, например: ( cd directory; rm files), тогда ваша рабочая оболочка не изменит каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...