Как удалить файлы конфигурации пакета без его переустановки

для того, чтобы делать то, что вы правильно хотите с помощью [ф6] вы должны понимать следующие понятия:

рабочий каталог процесса. Функция глоб баш (или другие снаряды).

каждый процесс в Linux имеет рабочий каталог как часть своего внутреннего состояния. Вы можете представить ее себе как "место" процесса в файловой системе. Оболочка тоже процесс, а также есть рабочий каталог. Рабочий каталог оболочки каталога (обычно) отображается в строке.

, когда процесс создан, он наследует рабочий каталог от своих родителей. Если вы начнете процесс из оболочки, оболочка является родителем. Каждый процесс может изменить свой рабочий каталог по желанию. Вы можете изменить рабочий каталог из командной строки с помощью команды "встроенные" [ф7].

рабочий каталог используется при работе с относительными именами. Относительные имена файлов, не начинающиеся с [ф8]. Например, когда вы делаете [F9] и он будет искать этот файл [F10] для в текущей рабочей директории, но когда ты на [F11] он будет искать файл [ф12] в [от f13].

при работе с [ф14] вы всегда должны думать о рабочем каталоге. Рабочий каталог [ф15] рабочий каталог [ф16]. Рабочий каталог [f17 в] рабочий каталог оболочки.

в вашем случае:

[Ф1]

в [ф18] будет ссылка на родительский каталог рабочий каталог [зг19], которая является рабочий каталог [20 фунтов] которая находится в рабочей директории [клавиши f21] что рабочий каталог оболочки к моменту выполнения команды. Это не то, чего вы хотели.

есть [ф22] это как [ф23] но это первая переключает рабочий каталог на каталог, где соответствующий элемент найден. [ф24] - это огромный шаг в направлении решения на Ваш вопрос, но есть еще одна проблема в вашей команде [f25 привод датчика]: в [ф26] а.к.а. глоб.

глоб-это что-то вроде шаблона. Например foo* будет соответствовать [ф28] и foobaz (и [f30 с], потому что [ф31] также соответствует пустая строка). До сих пор так хорошо. Интересная часть подстановка заключается в том, что это делают оболочки, не выполнил команду. Когда вы выполните [f32 из] тогда оболочка будет сначала расширить * для foobar и [ф35], а затем выполните [f36 в]. [фунции f37] не видит *.

что происходит, когда нет никаких файлов, начинающихся с [ф39] в текущем каталоге? Затем оболочка (как правило) не будет расширять [ф40] и передать [ф41] в команду в Verbatim. Это означает, что rm foo* будет выполняться как rm foo*. [пулемет f44] будет искать файл с именем [f45 С] и он будет (скорее всего) не нашел и прерывает работу с ошибкой. В случае, если вам интересно: да, это возможно, имя должно содержать *, нет, не попробовать это дома.

в вашем случае:

[Ф2]

перед выполнением find командная оболочка будет сначала пытаться расширить глоб {}/*. Нет файлы, соответствующие этому шаблону {}/* поэтому глоб будут переданы дословно.

давайте посмотрим, что команда [ф50] делает. Предположим, что выполняется команда find от /home/username/somedir и существует каталог /home/username/somedir/localFolders/foodir/file с некоторые файлы в нем. find начнет поиск в [f55, которая] потому что он сказал так в параметров но рабочую директорию find это /home/username/somedir, потому что он был казнен оттуда.

теперь find найти каталог /home/username/somedir/localFolders/foodir/file. Перед выполнением [от f60] он заменит [ф61] с найденного элемента. Это означает, что mv {}/* .. станет mv /home/username/somedir/localFolders/foodir/file/* ... [64-го фокуса] не удастся, потому что он будет (скорее всего) не найти файл с именем [камера f65].

[dиода d17]предположим, имеется файл с именем *, затем mv перемещает файл в [f68 не]. Помните, что рабочий каталог-это /home/username/somedir. Это означает, что [р70] перемещает файл в /home/username/somedir/.., который /home/username. Это не то, чего вы хотели.[!dиода d17]

"исправить" для вашей команды find зависит от нескольких факторов. Например:

есть "dotfiles" в каталоге file? Dotfiles-это файлы с именами, начинающимися с точки. В [f75 в Джей] глоб будет (как правило) не имена файлов, начинающиеся с точки. Есть другие каталоги в директории file? [f77 на английском языке] постараюсь повторить в них, но не потому, что они были перемещены. Есть каталоги по имени file в каталоге file? Где эти файлы? Там миллион файлов в директории [ф80]? Что может испортить * расширение глоб. Есть столкновения именем с файлами из каталога file? Они должны быть перезаписаны? Есть пробелы в именах файлов? Что будет все испортить.

, чтобы исправить свои команды find я с радостью игнорируют все эти факторы.

вот это исправить с помощью [ф84] и [ф85], чтобы задержать расширение [ф86]:

[Ф3]

с * взято в кавычки, он не будет расширен загодя. Когда -execdir выполняет команду тогда sh -c позволит расширить [ф90] в рабочем каталоге.

вот еще одно исправление без [f91 со шляпками]:

[Ф4]

я использовал -path найти все предметы в каталоги с именем file. В * в котировки, так что они не будут расширяться загодя. На этот раз find заботится о толковании *. Следует отметить, что это будет соответствовать что-то вроде ./localFolders/foodir/file/bardir/file/somefile. Как сказал мне радостно игнорировали этот фактор.

и для полноты картины еще исправить без -execdir:

[ф5]
1
задан 7 March 2015 в 21:18

0 ответов

Другие вопросы по тегам:

Похожие вопросы: