GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengurutkan file ke dalam folder berdasarkan tipe file di bash (dengan perintah 'file')?

Bagaimana dengan sesuatu seperti ini:


mkdir -p `file -b --mime-type *|uniq`
for x in `ls`
do
        cp $x `file -b --mime-type $x`
done

Saya menggunakan cp, tidak bisa bekerja dengan direktori.


Penyesuaian jawaban Dadam:

#!/bin/bash

file --mime-type -F"&" [YOUR PATH]/* > filetypes.txt
mkdir -p `cut -f2 -d"&" filetypes.txt | sed 's/[ ,:]//g' | sort -u`
IFS=$'\n'
for x in `cut -f1 -d"&" filetypes.txt`
do
  mv "$x" `file -b --mime-type "$x" | sed 's/[ ,:]//g'`
done 

Jawaban ini tidak mengeksekusi file perintah beberapa kali untuk setiap file, yang tidak perlu

file  -N --mime-type -F"-&-" * | awk -F"-&-" 'BEGIN{q="\047"}
{
  o=$1
  gsub("/","_",$2);sub("^ +","",$2)
  if (!($2  in dir )) {
    dir[$2]
    cmd="mkdir -p "$2
    print cmd
    #system(cmd) #uncomment to use
  }
  files[o]=$2
}
END{
 for(f in files){
    cmd="cp "q f q"  "q files[f]"/"f".jpg" q
    print cmd
    #system(cmd) #uncomment to use
 }
}'

demikian pula, dapat dilakukan dengan skrip bash4+ menggunakan array asosiatif.


Linux
  1. Urutkan Perintah di Linux dengan Contoh

  2. Bagaimana Cara Mencatat Setiap Perintah yang Diketik Ke Bash Dan Setiap Operasi File?

  3. Bash Script Untuk Mengurutkan File Ke Folder Abjad Di Readynas Duo V1?

  1. Cara Menemukan File dengan Perintah fd di Linux

  2. Cara Mengurutkan File di Linux menggunakan Perintah Sortir

  3. Cara gzip semua file di semua sub-direktori menjadi satu file terkompresi di bash

  1. Cara Membaca File Baris demi Baris di Bash

  2. Cara Menemukan File di Linux Dengan Perintah Temukan

  3. Cara Menggunakan Perintah SCP untuk Mentransfer File dengan Aman