Приведенный ниже сценарий bash перебирает файлы в текущем каталоге в поисках повторяющихся имен файлов без учета регистра. Если совпадение найдено, создается несуществующая папка «Дубликаты», а затем файл-дубликат перемещается в этот каталог.
Внешний цикл предназначен для повторного -вычисления глобусов файлов(*
)для циклов в случае перемещения файла. Внешний цикл выполняется до тех пор, пока файлы не будут перемещены.
#!/bin/bash
changes=1
while [ $changes -gt 0 ]
do
changes=0
for one in *
do
for two in *
do
shopt -u nocasematch
# if it's the exact same filename, skip
[[ "$one" == "$two" ]] && continue
shopt -s nocasematch
# if the file name matches case-insensitively, then mv it
if [[ "$one" == "$two" ]]
then
suffix=
while [ -d Duplicates"${suffix}" ]
do
suffix=$((suffix + 1))
done
mkdir Duplicates"${suffix}"
mv "$two" Duplicates"${suffix}"
changes=1
break
fi
done
done
done
С этими примерами файлов:
afile.txt
TestFile1.TXT
TESTfile1.txT
testfile1.txt
Пример запуска скрипта создает:
$ tree.
.
├── afile.txt
├── Duplicates
│ └── TestFile1.TXT
├── Duplicates1
│ └── testfile1.txt
└── TESTfile1.txT
$ man proc
ответит на ваш первый вопрос.
The proc filesystem is a pseudo-filesystem which provides an interface to kernel data structures.
It is commonly mounted at /proc.
Most of it is read-only, but some files allow kernel variables to be changed.
Вы точно не имеете в виду /sys/bus/usb/ ??
Я понятия не имею, что ПО VM -является проприетарным, поэтому я им не пользуюсь.
Однако для виртуального ящика -существует возможность совместного использования папок. Это предпочтительнее, чем предоставление гостю USB-устройства. Также есть возможность передать гостю USB-устройства.