313d656c-544a-4f93-b95c-6dfde6bf5b10
prompter
I need help with a bash script that loops through a directory and its subdirectories, looking for files with a specific extension (e.g., .txt). For each file found, the script should extract the date it was last modified, and create a new directory named after that date (if it doesn't already exist). The script should then move the file into the directory named after its modification date. Can you help me write this script in bash?
7ad1dacd-d341-4a73-871c-42992f584ebd
313d656c-544a-4f93-b95c-6dfde6bf5b10
assistant
Sure! Here's a bash script that implements the functionality you described:

```
#!/bin/bash

# specify the directory to search and the file extension to look for
search_dir="./"
file_ext=".txt"

# loop through all files in the search directory and its subdirectories
for file in $(find $search_dir -type f -name "*$file_ext"); do
  # extract the date the file was last modified
  file_date=$(date -r "$file" +%Y-%m-%d)
  
  # create a directory named after the modification date, if it doesn't already exist
  if [ ! -d "$file_date" ]; then
    mkdir "$file_date"
  fi
  
  # move the file into the directory named after its modification date
  mv "$file" "$file_date"
done
```

This script uses the find command to search the specified directory (search_dir) and its subdirectories for files with the specified extension (file_ext). For each file found, it extracts the modification date using the date command, and creates a directory named after that date using the mkdir command (if it doesn't already exist). Finally, it moves the file into the directory named after its modification date using the mv command.
ecd20998-91ed-4c45-8215-3f7a9c989f66
7ad1dacd-d341-4a73-871c-42992f584ebd
prompter
Oops, I ran this script on the wrong directory. How can I reverse this and restore my files?