2010-09-28 2 views
1

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

Рассматривая documentation для rm, оказывается, что rm работает только в $PWD.

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

oDir=$PWD 
cd directorytoremovefiles 
rm files 
cd oDir 
+2

Вы пробовали «rm directorytoremovefiles/files»? – YYC

+0

@Jason: '$ PWD' предоставляется * by * Bash. –

+0

узнал что-то новое ... спасибо Деннис :) –

ответ

2

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

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

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

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

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

rm directorytoremovefiles/files 
0

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