Если все, что вы хотите сделать, это подавить предупреждающее сообщение от ls
, тогда самым простым -перенаправлением будет перенаправление stderr
на /dev/null
, например.:
Files=$(2>/dev/null ls -1 *.csv | wc -l)
Обратите внимание, что перенаправление stderr
подавляет все ошибки, возникающие в результате этой команды, включая ошибки, которые могут не быть связаны с отсутствием файлов *.csv
в каталоге.
Лучшим решением для подсчета файлов может быть использование find
вместо ls
, например.:
find. -maxdepth 1 -name "*.csv" | wc -l
Фактически, вы можете также использовать find
для выполнения удаления:
find. -maxdepth 1 -name "*.csv" -delete
Я также заметил, что вы использовали флаг -r
с rm
, что выглядит непреднамеренно, поскольку вы выполняете плоский поиск, используя ls
, за которым следует рекурсивное удаление с помощью rm
.
Честно говоря, я не уверен, что есть смысл писать скрипт для этой задачи. Какие преимущества дает этот скрипт по сравнению с простым запуском команд напрямую? Другими словами, что здесь не так:
# Check for files
ls *.csv
# Delete the files
rm *.csv
Почему запуск вашего скрипта лучше, чем запуск этих команд? Похоже, вы просто добавляете накладные расходы и заменяете одно сообщение об ошибке другим.
Судя по изображению, раздел представляет собой физический том. Это подтверждается pvscan
.
lvs
перечисляет два логических тома, один из которых является разделом подкачки (LV swap _1 ), кажется, а другой — реальной файловой системой (LV root ). Это соответствующий, который должен быть установлен
mount -o ro /dev/mapper/ubuntu--vg-root /mnt/img5
Когда устройства отсутствуют,vgscan --mknodes
--mknodes
Also checks the LVM special files in /dev that are needed for active LVs and creates any missing ones and removes unused ones.
илиvgmknodes
могут быть полезны
vgmknodes checks the LVM device nodes in /dev that are needed for active LVs and creates any that are missing and removes unused ones.
В этом конкретном случае том LUKS содержит физический том диспетчера логических томов (, отсюда и ошибка LVM2_member
, которую вы получили при попытке монтирования ).
Выходы
# pvscan
PV /dev/mapper/img5 VG ubuntu-vg lvm2 [232.16 GiB / 0 free]
и
# vgs
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 1 2 0 wz--n- 232.16g 0
оба указывают, что том LUKS содержит (полностью )группу томов ubuntu-vg
, которая содержит логические тома
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ubuntu-vg -wi-a----- <231.21g
swap_1 ubuntu-vg -wi-a----- 980.00m
Вы можете смонтировать файловую систему под root
с помощью команды
sudo mount /dev/ubuntu-vg/root /mnt/img5