Кажется, что Ваш диск поврежден, я рекомендую Вам прекратить использовать его. Fsck поддерживает проверку файловой системы, которая является инструментом для восстановления проблем в файловых системах. Поскольку использование этого инструмента может привести к dataloss, если некоторые детали не наблюдаются (т.е. выполнение его в смонтированной файловой системе) настоятельно рекомендуют Вам прочитать эту страницу справочника И Google немного прежде, чем принять любое решение.
Не выполняйте fsck в живой или смонтированной файловой системе. fsck используется, чтобы проверить и дополнительно восстановить одну или несколько файловых систем Linux. Выполнение fsck в смонтированной файловой системе может обычно приводить к диску / повреждение данных. Поэтому не делайте этого. У Вас есть два варианта
Следующее является соответствующими шагами в каждом случае:
Удалите систему к однопользовательскому режиму и unmout систему
/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
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]:
Это должно сработать? Это в основном удаление .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