С помощью инструментов GNU вы можете сделать что-то вроде:
(export LC_ALL=C
find. -name '*.txt' -print0 |
sed -Ez 's|/x([^/]*)$|/\1|' |
sort -z |
uniq -zd |
sed -z 'h;s|.*/|&x|;G' |
xargs -r0n2 echo mv)
Это предполагает, что нет файлов, имя которых начинается с более чем одного x
. Например, так не пойдетmv./xx.txt./x.txt
Утилита file
предоставит некоторую информацию:
$ uname -a
Linux vm 5.4.38-gentoo #1 SMP Tue May 5 00:53:31 EDT 2020 x86_64 Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz GenuineIntel GNU/Linux
$ file /boot/vmlinuz-5.4.38-gentoo
/boot/vmlinuz-5.4.38-gentoo: Linux kernel x86 boot executable bzImage, version 5.4.38-gentoo (root@vm) #1 SMP Tue May 5 00:53:31 EDT 2020, RO-rootFS, swap_dev 0x9, Normal VGA
Информацию об оборудовании, которую вы можете получить из других источников, например/proc/cpuinfo
$ cat /proc/cpuinfo| grep "model name"
model name : Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz