Удалите несколько возможных суффиксов

Кажется, что Ваш диск поврежден, я рекомендую Вам прекратить использовать его. Fsck поддерживает проверку файловой системы, которая является инструментом для восстановления проблем в файловых системах. Поскольку использование этого инструмента может привести к dataloss, если некоторые детали не наблюдаются (т.е. выполнение его в смонтированной файловой системе) настоятельно рекомендуют Вам прочитать эту страницу справочника И Google немного прежде, чем принять любое решение.

Не выполняйте fsck в живой или смонтированной файловой системе. fsck используется, чтобы проверить и дополнительно восстановить одну или несколько файловых систем Linux. Выполнение fsck в смонтированной файловой системе может обычно приводить к диску / повреждение данных. Поэтому не делайте этого. У Вас есть два варианта

  1. Удалите систему к однопользовательскому режиму и unmout систему
  2. Начальная загрузка от установочного CD в спасательный режим

Следующее является соответствующими шагами в каждом случае:

  1. Удалите систему к однопользовательскому режиму и unmout систему

    • Используйте init (инициализация управления процессом) команда для изменения, runlevel 1 (подпалите непривилегированный режим),
    • Используйте команду umount для размонтирования /home файловая система
    • Осуществите проверку файловой системы с помощью fsck команда

Давайте скажем, что требуется работать fsck на /home (/dev/sda3):

init 1
umount /home
umount /dev/sda
fsck /homeOR
fsck /dev/sda3

ИЛИ

e2fsck -y /dev/sda3

2. Начальная загрузка от установочного CD в спасательный режим

Если Вы используете Цент OS/Fedora Core/RHEL Linux, начальная загрузка с первого CD и в типе подсказки начальной загрузки:

boot: linux rescue nomount

Теперь сделайте новый узел для диска и раздела 3:

mknod /dev/sda
mknod /dev/sda3
fsck /dev/sda3

ИЛИ

e2fsck -y /dev/sda3

Не забывайте перезагружать систему:

exit
reboot

3
08.05.2014, 20:02
2 ответа

basename[115053] берет только один суффикс для удаления, и дает базовое имя (удаляет компоненты каталога), которое вам все равно там не нужно, так что [115054]basename[115055] на самом деле не является подходящим инструментом для ваших нужд.

Традиционным инструментом для извлечения данных из строки является [115056]expr[115057]:

Но современные оболочки (такие как [115058]zsh[115059], [115060]bash[115061], [115062]ksh[115063], [115064]ash[115065], [115066]yash[115067], все POSIX-совместимые [115068]sh[115069]. ...) имеют встроенные операторы для этого, так что вам вряд ли когда-нибудь понадобятся [115070]expr[115071] в настоящее время (и этого лучше избегать, так как у него есть несколько проблем).

удаляет (наименьший) шаблон соответствия деталей из конца [115072]$var

Оболочки вроде [115074]tcsh[115075] или [115076]zsh[115077] имеют операторы для удаления расширений. Zsh:

([115078]r[115079] для [115080]rootname[115081]).

Если вы хотите удалить расширение, только если это одно из jpg/png/gif, то это становится более сложным и зависит от оболочки.

С [115082]zsh[115083]:

C:\Ruby\bin> cd /d D:\
D:\>

С [115084]ksh[115085]:

C:\Ruby\bin> cd D:\
C:\Ruby\bin> D:
D:\>
С [115086]bash[115087]:С [115088]expr[115089]:(да, это запутанно, и это для того, чтобы обойти некоторые вопросы [115090]expr[115091]).

С некоторыми реализациями [115092]expr[115093] можно упростить до:

Вы также можете использовать [115094]sed[115095]:

c---rw---- 1 root lp 6, 0 2011-06-26 22:47 /dev/lp0

Если Вы хотите, чтобы он был нечувствителен к регистру, Вы можете заменить [115096]png/gif/jpg[115097] во всех вышеперечисленных решениях на [115098][pP][nN][gG]. ...[115099], некоторые оболочки/инструменты также могут делать согласование без учета регистра:

sudo chmod 666 /dev/lp0

zsh[115101]:

echo "Y helo thar" > /dev/lp0

ksh93[115103]:

bash[115105]:


GNU [115106]sed[115107]:

13
27.01.2020, 21:08

Это должно сработать? Это в основном удаление .mp3или .wavрасширений :

.
$ basename -s.wav $(basename -s.mp3 'some_file.mp3')
some_file
$ basename -s.wav $(basename -s.mp3 'some_file.wav')
some_file
$ basename -s.wav $(basename -s.mp3 'some_file.rs') 
some_file.rs
0
08.05.2020, 11:17

Теги

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