input: Write a function to create a FileSystem class with methods for saving, deleting, and finding task data. The FileSystem class should be initialized with a dictionary containing a 'taskDir' key specifying the directory where task data should be stored. The class should provide methods to save task data with an optional 'id' key, delete task data by ID, find task data by ID, find task data for multiple IDs, find all task data sorted by ID, and get task data for a specific ID without raising an error if the data is not found.
  
  
  assert save_task({'data': 'example'})['id'] is not None
  assert delete_task('some_id') is None
  assert find_by_id('some_id') == {'id': 'some_id', 'data': 'example'}
  assert find_by_ids(['id1', 'id2']) == [{'id': 'id1', 'data': 'example1'}, {'id': 'id2', 'data': 'example2'}]
  assert all_task_data() == [{'id': 'id1', 'data': 'example1'}, {'id': 'id2', 'data': 'example2'}]
  assert task_data('some_id') == {'id': 'some_id', 'data': 'example'}
  
output: class FileSystem:
      def __init__(self, config):
          self.taskDir = config['taskDir']
          self.tasks = {}
  
      def save_task(self, task_data, id=None):
          if id is None:
              id = str(uuid.uuid4())
          task_data['id'] = id
          self.tasks[id] = task_data
          return task_data
  
      def delete_task(self, id):
          if id in self.tasks:
              del self.tasks[id]
  
      def find_by_id(self, id):
          return self.tasks.get(id, None)
  
      def find_by_ids(self, ids):
          return [self.tasks.get(id, None) for id in ids if id in self.tasks]
  
      def all_task_data(self):
          return sorted(self.tasks.values(), key=lambda x: x['id'])
  
      def task_data(self, id):
          return self.tasks.get(id, None)