Это касается недавней проблемы, с которой я столкнулся. Внезапно после выхода из mv-команды Linux ящик не реагировал на разные фронты, ниже приведено общее описание проблемы, которая произошла.Команда mv не работает, как предполагалось, на Linux CENT/REDHAT OS
1) команда перемещения выполнена с/* в пункте назначения
# mv -f *.txt /*
2) команда успешно продвигался нужный контент, но не/он переместил его в/вар
3) вместе с желаемыми контент также перемещал содержимое/папок рекурсивно в/var location.
4) это привело к перемещению всех бинарных файлов и папок, необходимых для нормальной работы ОС
5) это движение ограничено Войти через SSH/консоль.
6) сообщение о восстановлении папок из системы/var location получило функции нормально.
Я попытался тиражирование проблема на тестовой системы Linux и он получил реплицируются, как показано ниже,
[[email protected] ~]# ls -lrt
total 84
-rw-r--r-- 1 root root 4224 Feb 5 17:28 install.log.syslog
-rw-r--r-- 1 root root 38536 Feb 5 17:35 install.log
-rw------- 1 root root 955 Feb 5 17:35 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 Feb 5 20:03 Desktop
-rw-r--r-- 1 root root 119 Feb 5 20:28 ifcfg-eth0
-rw-r--r-- 1 root root 119 Feb 6 15:17 ifcfg-eth1
-rw-r--r-- 1 root root 44 Mar 1 05:08 student.txt
drwxr-xr-x 3 root root 4096 Mar 14 17:59 admin
[[email protected] ~]# mv -vf * /*
`admin' -> `/var/admin'
`anaconda-ks.cfg' -> `/var/anaconda-ks.cfg'
`Desktop' -> `/var/Desktop'
`ifcfg-eth0' -> `/var/ifcfg-eth0'
`ifcfg-eth1' -> `/var/ifcfg-eth1'
`install.log' -> `/var/install.log'
`install.log.syslog' -> `/var/install.log.syslog'
`student.txt' -> `/var/student.txt'
`/bin' -> `/var/bin'
mv: cannot move `/boot' to `/var/boot': Device or resource busy
mv: cannot move `/dev' to `/var/dev': Device or resource busy
`/etc' -> `/var/etc'
`/home' -> `/var/home'
mv: cannot move `/lib' to a subdirectory of itself, `/var/lib'
`/lost+found' -> `/var/lost+found'
`/media' -> `/var/media'
`/mnt' -> `/var/mnt'
`/opt' -> `/var/opt'
mv: cannot move `/proc' to `/var/proc': Device or resource busy
`/root' -> `/var/root'
`/sbin' -> `/var/sbin'
`/selinux' -> `/var/selinux'
`/srv' -> `/var/srv'
mv: cannot move `/sys' to `/var/sys': Device or resource busy
`/tmp' -> `/var/tmp'
`/usr' -> `/var/usr'
[[email protected] ~]# ls
-bash: /bin/ls: No such file or directory
[[email protected] ~]# ls -lrt
-bash: /bin/ls: No such file or directory
[[email protected] ~]# cd/
.autofsck boot/ lib/ sys/
.autorelabel dev/ proc/ var/
[[email protected] ~]# cd /var/
account/ games/ lost+found/ selinux/
admin/ gdm/ mail/ spool/
anaconda-ks.cfg home/ media/ srv/
bin/ ifcfg-eth0 mnt/ student.txt
cache/ ifcfg-eth1 nis/ tmp/
crash/ install.log opt/ tux/
cvs/ install.log.syslog preserve/ usr/
db/ lib/ racoon/ www/
Desktop/ local/ root/ yp/
empty/ lock/ run/
etc/ log/ sbin/
Вопросы об этом сценарии есть 1) Почему мв команда привела к такому поведению?
2) Является ли это поведение известной ошибкой или риском?
3) Есть ли какой-либо известный способ ограничить это, подобно использованию концепции псевдонима?
Я еще не понял, что вы подразумеваете под «* был расширен до/var»? –
В моей системе 'echo/*' дает '/ bin/boot/dev/etc/home/lib/lib64/lost + found/media/mnt/opt/proc/root/sbin/selinux/srv/sys/tmp/usr/var'. В моем случае подстановочный знак в вашей команде 'mv -f * .txt/*' был бы изменен на 'mv -f train.txt/bin/boot/dev/etc/home/lib/lib64/lost + found/media/mnt/opt/proc/root/sbin/selinux/srv/sys/tmp/usr/var'. Команда mv пытается переместить все в последний заданный параметр, каталог/var. –
очень ясно сейчас. –