2

I have hundreds of folders, in quantities from one to a couple dozen in each of twenty or more parent folders, each uniquely named (across my entire system) in a way that will cause them all to correctly sort in date order.

They're arranged like this:

.
├── ASA Specs
├── Camera Making
├── Camera Manual
├── Camera Repair
├── CarboGel and Carbon-Q
├── Darkroom and Developers
├── defective macophot 100_files
├── Equipment
├── Ferric Gum Printing Process
├── Kodak Camera Model History
├── Large Format Forum PMs
├── LED Safelight
├── My Images
│   ├── 35 mm
│   │   ├── Ansco Easy View AF Date
│   │   ├── Balda Jubilette
│   │   ├── Bantam RF
│   │   ├── Canonet 28
│   │   ├── Canonet G-III QL-17
│   │   ├── Capital KX-100 Pinhole
│   │   ├── GumPintoids
│   │   ├── Junker P&S
│   │   ├── Kiev 4
│   │   ├── Minolta AL
│   │   ├── Motormatic 35
│   │   ├── Olympus XA
│   │   ├── Petri 7S
│   │   ├── Pony 135 Model C
│   │   ├── Ricoh Singlex II
│   │   ├── Rollei 35
│   │   ├── Sears TLS (Ricoh Singlex TLS)
│   │   ├── Signet 35
│   │   ├── Spotmatic SP
│   │   ├── Traveling Vivitar Ultra Wide and Slim
│   │   ├── Vivitar 220 SL
│   │   ├── Vivitar PZ-3125
│   │   ├── Voigtlander Vitrona
│   │   └── Zenit TTL
│   ├── Circle Wing Paper Glider
│   ├── Digital
│   │   ├── 6x24 Fine Box
│   │   ├── AutoPin 210
│   │   ├── Beach Trip Nov. 2015
│   │   ├── Brownie Bullseye
│   │   ├── Capital KX-100 conversion
│   │   ├── EM Polaroid 4x5
│   │   ├── February Snow
│   │   ├── From LG enV2
│   │   ├── From LG enV Touch
│   │   ├── from Samsung Galaxy S4
│   │   ├── Kawee Camera
│   │   ├── Kodak Starmeter
│   │   ├── Monopod
│   │   ├── Nelsonfoto Winter 2007
│   │   ├── Pin-Plate
│   │   ├── Pony 135 Model C
│   │   ├── Scans via Camera
│   │   ├── Self-Portraits
│   │   ├── Smelting Wheel Weights
│   │   ├── Speed Graphic
│   │   ├── Spring Back Conversion
│   │   ├── Three-60 9x24 Anamorph
│   │   ├── Tree on House
│   │   ├── Voigtlander Vitrona
│   │   ├── Wedding Ring
│   │   └── Zeiss-Ikon Baby Ikonta 520-18
│   ├── Digital Portfolio
│   ├── For APUG
│   ├── Found Film
│   │   ├── 120
│   │   ├── 126
│   │   ├── 127
│   │   ├── 35 mm
│   │   ├── 620
│   │   ├── 828 Bantam
│   │   └── Minolta 16
│   ├── Jazz Cam
│   ├── Keith Slater
│   │   └── Kodacolor II 127
│   ├── Large Format
│   │   ├── Aletta
│   │   ├── EM Polaroid 4x5
│   │   ├── Graphic View
│   │   ├── Kawee Camera
│   │   ├── Speed Graphic
│   │   ├── Three-60 9x24 Anamorph
│   │   └── Ziess-Ikon Ideal 9x12 cm
│   ├── Lit'l H Ranch
│   ├── Medium Format
│   │   ├── Agfa Clack
│   │   ├── Ansco Pioneer 620
│   │   ├── Ansco Shur-Shot Jr
│   │   ├── Argoflex EF
│   │   ├── Baldixette Pinhole
│   │   ├── Bencini Koroll 24-S
│   │   ├── Brownie Bullseye
│   │   ├── Brownie Flash Six-20
│   │   ├── Brownie Hawkeye Flash  #1
│   │   ├── Brownie Hawkeye Flash #2
│   │   ├── Brownie Target Six-16 Pinhole
│   │   ├── CCB Pinhole 6x6
│   │   ├── Daiichi Zenobia
│   │   ├── Debonair
│   │   ├── Hagar the Ansco Viking
│   │   ├── Kodak Duaflex IV-Kodet
│   │   ├── Kodak Reflex II
│   │   ├── Moskva-5
│   │   ├── RB67
│   │   ├── Seagull 4-B
│   │   ├── Shur-Flash Traveling Camera
│   │   ├── Spartus Full-Vue Pinhole
│   │   ├── Speedex 4.5
│   │   ├── Speedex Jr
│   │   ├── Voigtlander Rollfilmkamera
│   │   ├── Wirgin Auta 4.5
│   │   ├── Wirgin Auta 6.3
│   │   ├── Zeiss-Ikon Ikomat
│   │   ├── Zeiss-Ikon Nettar
│   │   └── Zeiss-Ikon Super Ikonta B
│   ├── Mosin Nagant Interrupter Repair
│   ├── Mosin Nagant Scope Base
│   ├── Polaroid
│   │   ├── Autofocus 660
│   │   ├── Model 210
│   │   ├── Model 350
│   │   └── SX-70
│   ├── Print Scan Shortcuts
│   ├── Rhinoceros Times
│   │   ├── Center City Soars
│   │   ├── Fun Fourth Festival 2007
│   │   ├── Fun Fourth Freedom Run 2007
│   │   ├── GYC Carnival 2007
│   │   └── Weatherspoon Solstice 2007
│   ├── Rhonda's Investigations
│   ├── Shortcuts by Film Type
│   │   ├── Acros
│   │   ├── ADOX CMS 20
│   │   ├── Agfa 400
│   │   ├── APX 400
│   │   ├── Classic 400
│   │   ├── Copex Rapid
│   │   ├── Delta 100
│   │   ├── Double-X Negative
│   │   ├── Ferrania 400
│   │   ├── Fomapan 100 - Ultra 100
│   │   ├── Fomapan 400 - Ultra 400
│   │   ├── Forte 400 - .EDU 400
│   │   ├── FP3000B
│   │   ├── FP4+
│   │   ├── HP5+
│   │   ├── Imagelink HQ
│   │   ├── J&C Pro 100
│   │   ├── Kodachrome
│   │   ├── Kodak Max 400
│   │   ├── Kodak Max 800
│   │   ├── KS 400
│   │   ├── Lucky SHD 400
│   │   ├── Maco UP100
│   │   ├── Neopan SS
│   │   ├── NPS 160
│   │   ├── NPS 400
│   │   ├── ORWO DN21 (Babylon 13)
│   │   ├── Plus X Negative
│   │   ├── Plus X Reversal
│   │   ├── Portra 160 NC
│   │   ├── Portra 160 VC
│   │   ├── Portra 400
│   │   ├── Portra 400NC
│   │   ├── Portra 400 VC
│   │   ├── Press 400
│   │   ├── Reala 400
│   │   ├── Superia 100
│   │   ├── Superia Xtra 400
│   │   ├── T400CN
│   │   ├── T-Max 400
│   │   ├── Tri-X
│   │   ├── Tri-X 320
│   │   ├── Type 664
│   │   ├── Type 667
│   │   ├── Verichrome Pan
│   │   ├── Walgreen's 400
│   │   └── XP2 Super
│   ├── Small Format
│   │   ├── Anny 44
│   │   ├── Baby Ikonta 520-18
│   │   ├── Brownie Starmeter
│   │   └── Yashica 44
│   ├── Subminiature
│   │   ├── Keychain Camera
│   │   ├── Kiev 303
│   │   ├── Minolta 16
│   │   ├── Minolta 16 II
│   │   ├── Minolta 16 MG
│   │   ├── Minolta QT
│   │   └── Olympus Pen EES-2
│   ├── Test CD
│   └── There
├── Nelsonfoto PMs
├── Photo Business Information
├── Printable Lens Hoods
└── reciprocity_files

Within "My Images" I will create a new folder, "Shortcuts by Date", and inside that folder, I want to place a link to each of the folders (of image files) inside each of the listed cameras.

I've done some of this by drag and drop, for "Shortcuts by Film Type", but that sometimes creates a link named "shortcut to XYZ" rather than just "XYZ" like I want -- and so far, I've had to manually rename those links when that occurs.

Is there an efficient way to do this, en masse, either from GUI or command line? If the latter, preferably without typing entire folder paths or even names each time I repeat the command when working in one of a couple dozen parent folders, of course.

In answer to comments:

  • Every folder name (representing a roll of film) within each camera's folder withing "My Images" is unique across my entire system and starts with an ISO date (looks like 20070706), with a trailing letter A, B, C, etc. for multiple rolls from the same date (even if they're in different parent folders), and further description (film and developer used) following -- for instance, "20200913B-Ultra 400-Xtol Stock". Filenames within those folders are not unique across other folders; they're usually just frame numbers and either .tiff or .jpg, which will obviously duplicate between different rolls.

  • I have successfully created links (or possibly Windows-type shortcuts, I'm not certain what the 16.04 file management actually supports here)in "Shortcuts by Film Type" on the same NTFS volume already (roughly half of the overall indexing task), manually linking files already indexed by equipment used into folders based on film type. I did this by drag and drop in GUI (hold left-alt before releasing mouse and get a menu asking what to do; select "link file here"), and a number of times, when dragging a group of files, the resulting link came up as "shortcut to XYZ" instead of just "XYZ" with a link sub-icon. This requires manual renaming to fix.

I now want to create one grand full index by date. Ideally, the "Shortcuts by Date" folder (which I'm happy to create manually) will wind up with one link inside to each "roll" folder within "My Images" and camera sub-folders, and nothing else.

If it matters, I'm currently using 16.04 and the files are on a legacy NTFS extended partition on a platter drive (partition has a couple hundred GB free, so space isn't yet a problem, but this data will most likely get moved to an EXT4 SSD within the next year, for faster load and save times).

11
  • 1
    Do the folder names have a pattern in common? Sep 17, 2020 at 14:45
  • Are the filenames unique across all your folders? If not, how do you want to handle duplicates?
    – ubfan1
    Sep 17, 2020 at 15:44
  • Hooboy. Editing to cover all of these questions.
    – Zeiss Ikon
    Sep 17, 2020 at 15:50
  • GNU stow might be of interest
    – muru
    Sep 17, 2020 at 16:13
  • @muru Never heard of it. Googling...
    – Zeiss Ikon
    Sep 17, 2020 at 16:15

1 Answer 1

1

The NTFS file system supports symbolic links since version 3.1. I just checked it on an external drive with NTFS file system and it works (I'm using 20.04 however). So I assume it will be possible for you.

So the following should work:

mkdir "/full/path/to/your/My Images/Shortcuts by Date"
cd "/full/path/to/your/My Images/Shortcuts by Date"
find .. -noleaf -type d -name '[0-9][0-9][0-9][0-9][0-9][0-9]*' -exec ln -s {} . \;

This assumes that all your image directories have names starting with at least six digits (the name pattern[0-9][0-9][0-9][0-9][0-9][0-9]*) and none of your "other" directories have such names.

It also assumes that your "Shortcuts by Film Type" folder contains only symbolic links to other "numbered" folders and not "real" such folders inside. If this is not the case, the command will have to be more complicated to exclude this folder from search.

The -noleaf parameter is normally not needed, but may be needed on non-Linux filesystems like NTFS for proper detection of all folders, so I included it here for safety.

3
  • You are correct in your understanding that all the folders to be linked start with (in fact) 8 numeric digits of the form 20200918 (YYYYMMDD), and that there are no other folders on that volume that have that form. I can easily tailor the command given for the extra selectivity of requiring 8-digit. I'll test this when I'm home...
    – Zeiss Ikon
    Sep 18, 2020 at 11:09
  • I'll just add that that single command that does the actual work here is a prime example of why Linux people love the system and others consider it impossible to learn...
    – Zeiss Ikon
    Sep 18, 2020 at 13:24
  • Okay, finally remembered to test this when I actually had time -- and it not only worked, it took about 3 seconds to complete. Nice!
    – Zeiss Ikon
    Sep 22, 2020 at 22:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .