From 1507fff991a9fc71dc3596d8d7b7401046e05b80 Mon Sep 17 00:00:00 2001 From: Ville Rantanen Date: Wed, 27 Jan 2021 10:47:54 +0200 Subject: [PATCH] file enumeration tool --- bin/file-enumerate | 1 + files/file-enumerate | 46 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 120000 bin/file-enumerate create mode 100755 files/file-enumerate diff --git a/bin/file-enumerate b/bin/file-enumerate new file mode 120000 index 0000000..e1f6bdb --- /dev/null +++ b/bin/file-enumerate @@ -0,0 +1 @@ +../files/file-enumerate \ No newline at end of file diff --git a/files/file-enumerate b/files/file-enumerate new file mode 100755 index 0000000..879c574 --- /dev/null +++ b/files/file-enumerate @@ -0,0 +1,46 @@ +#!/bin/bash + +function _help() { + echo ' +Usage: file-enumerate [-k] [-p #] + + Creates a folder "enumerated" and hard links all files in the current folder + renamed with a number + + -k keep filename, and insert the number in the beginning + -p pad nunbers, defaults to 4 +' +exit +} +keep=false +pad=4 +for (( i=1; i<=$#; i++ )); do + j=$(( i + 1 )) + [[ "${!i}" = "-h" ]] && _help + [[ "${!i}" = "--help" ]] && _help + [[ "${!i}" = "-k" ]] && keep=true + [[ "${!i}" = "-p" ]] && { pad=${!j}; i=$(( i + 1 )); } +done + +printf -v padstr "%%0%dd" $pad + +_drive() { + ls -1prt | grep -v "/$" | cat -n | while read n f; do + printf -v padded $padstr $n + if [[ $keep = true ]]; then + printf -v outname "%s.%s" "$padded" "$f" + else + ext=${f#*.} + if [[ "$ext" = "$f" ]]; then + printf -v outname "%s" "$padded" + else + printf -v outname "%s.%s" "$padded" "$ext" + fi + fi + printf "%30s -> %s\n" "$f" "$outname" + cp -l "${f}" enumerated/"$outname" + done +} + +mkdir -p enumerated +_drive