Поиск всех *.out
файлов, содержащих строку index123
в текущем каталоге:
grep -lF 'index123'./*.out
Если вы хотите сделать рекурсивное grep
для всех *.out
файлов независимо от того, где они находятся в текущем каталоге:
find. -type f -name '*.out' -exec grep -lF 'index123' {} +
Печать каталога, в котором была найдена строка:
find. -type f -name '*.out' -exec grep -qF 'index123' {} ';' -exec dirname {} ';'
Выход после первого найденного имени каталога (с использованием GNUfind
):
find. -type f -name '*.out' -exec grep -qF 'index123' {} ';' -exec dirname {} ';' -quit
В зависимости от того, для чего вы планируете использовать имя каталога, вы должны заменить -quit
другим -exec
для обработки каталога любым способом, который вам нужен, или комбинировать различные -exec
утилиты в сценарий оболочки, вызываемый из -exec
. Что вы не делаете, так это передаете имя каталога какой-либо другой команде, поскольку это, как правило, небезопасно, если вы не примете дополнительные меры предосторожности при разграничении имени пути (s )нулевыми символами.
Связанные:
Вообще было бы неплохо не использовать sda5
напрямую, а сделать его LVM PV (pvcreate
), создать для него LVM VG(vgcreate
)и создать LVM LV home
в этой VG (lvreate
). ]. Это значительно упрощает последующие изменения размера и имеет преимущества для резервного копирования.
Как бы вы это ни делали:
/mnt/tmp
/home
(, чтобы быть в безопасности, которую вы можете запуститьumount /home && mount /home
)cp -a /home/. /mnt/tmp
/home
в /etc/fstab
со старой на новую блочное устройство (или UUID, см.blkid
)umount /home
mount /home
df -h /home
Прежде чем делать что-то серьезное, убедитесь, что ваши резервные копии обновлены.
Для перемещения /home используется rsync. -Обязательно используйте параметры для сохранения прав собственности и разрешений.
help.ubuntu.com/community/Partitioning/Home/Moving
Но вы также можете использовать его как раздел данных. Я храню /home внутри/(root ), а /home занимает около 3 ГБ, но все данные находятся в связанных папках из раздела данных. Не обязательно должен быть второй диск, как показывают эти примеры. Просто любой другой раздел.
https://askubuntu.com/questions/1013677/storing-data-on-second-hdd-mounting
Если это так, то есть довольно простой способ сделать это с помощью пользовательского интерфейса Gparted:
Системе придется физически переместить ~27 ГБ sda5 (/ )и, возможно, также 55 ГБ sda11 (/home ), поэтому в зависимости от вашего диска это может занять несколько часов..
Для этого вам понадобится терминал. Либо скопируйте весь раздел sda11 поверх sda5 с dd
, например:
dd if=/dev/sda11 of=/dev/sda5 bs=1M
... или назначьте /dev/sda5 некоторую точку монтирования и скопируйте данные с помощью rsync или любого другого файлового менеджера, который вы предпочитаете (только будьте осторожны, чтобы использовать параметр rsync -an
для сохранения прав доступа ). Когда закончите, измените точку монтирования sda11 и измените sda5 на /home.