[Help] Bulk chmod when migrating from NTFS
from AntY@lemmy.world to linux@lemmy.ml on 02 Mar 07:47
https://lemmy.world/post/26232257

At long last I’m finally switching operating system for my gaming PC. I have a lot of photos and such saved that have been moved from an NTFS drive. Is there any tool out there to help me fix the permissions of these files according to file type in bulk?

#linux

threaded - newest

Shadow@lemmy.ca on 02 Mar 07:53 next collapse

Chmod works recursively.

What modes exactly are you trying to set? Why do you need different perms based on the file type?

just_another_person@lemmy.world on 02 Mar 07:54 next collapse

chmod -R [mode] /dir/path

p_consti@lemmy.world on 02 Mar 08:22 next collapse

If you need finer control than recursive chmod (see other replies), you can also use find to match precisely which files/folders you want and use the -exec parameter to run chmod on those

stuner@lemmy.world on 02 Mar 08:28 collapse

I wanted to write the same thing. E.g., you can run this in bash to set the permissions for all .conf files to 600:

find /mnt/the/directory -iname "*.conf" -exec chmod 600 {} \;
FauxLiving@lemmy.world on 02 Mar 08:49 next collapse

Your things may be owned by root and have unusual permissions.

So, to make your NTFS drive be owned by your user and group and to set the permissions you can:

# Change owner to user:user
sudo chown -R username:group your_directory

# Change permissions to default (typically 755 for directories and 644 for files)

# For directories
find your_directory -type d -exec chmod 755 {} \;

 #files
find your_directory -type f -exec chmod 644 {} \;
Xanza@lemm.ee on 02 Mar 09:03 collapse

Not like you need another utility to do this, but I highly recommend you checkout fd. It’s badass;

fd -e jpg -e png -e webp -x chmod newuser:newuser

-e jpg is clearly the file extensions you want, -x is to execute a command with each result. You can also use -X which executes a command using all the files found as a single argument;

fd -e conf -X rm # delete all .conf files in one command versions an rm command for each file found